当前位置:  编程技术>移动开发
本页文章导读:
    ▪jquery mobile 页面间的传送参数        jquery mobile 页面间的传递参数jq mobile作为一个web开发手机app的框架,打包后的apk,其实就是在手机上模拟一个简易的浏览器,然后进行js操作,在没有服务器端脚本语言的支持下,如何传递参.........
    ▪ Xcode运作不了API文档给的代码或是以前的工程        Xcode运行不了API文档给的代码或是以前的工程 Xcode换到了4.2 或是4.5遇到了一些问题,之前的代码很多都不能运行,提示如标题所示的错误,在国外论坛上给出了解决办法,如下:   在左.........
    ▪ 【多媒体打包格式详解】-MKV【1】       【多媒体封装格式详解】---MKV【1】Matroska 开源多媒体容器标准。MKV属于其中的一部分。 Matroska常见的有.MKV视频格式、MKA音频格式、.MKS字幕格式、.MK3D files (stereoscopic/3D video). 1.EBML(Extensible Bin.........

[1]jquery mobile 页面间的传送参数
    来源: 互联网  发布时间: 2014-02-18
jquery mobile 页面间的传递参数

jq mobile作为一个web开发手机app的框架,打包后的apk,其实就是在手机上模拟一个简易的浏览器,然后进行js操作,在没有服务器端脚本语言的支持下,如何传递参数呢?

很明显,这就要依靠jquery mobile来获取了。

在$(document).bind('pagebeforechange',function(e,data){... ... });事件里面:

$(document).bind('pagebeforechange',function(e,data){
      if (typeof data.toPage !== "string"){//这个事件会调用两次,但每次的data内容不一样,所以要判断
           return;
      }
      var urlObj = $.mobile.path.parseUrl(/blog_article/data.toPage);//取到一个对象
      var paramStr = urlObj.search;//对象中的参数,格式为 例: ?id=34&key=perfect&action=go
});
还要处理这个取到的参数,笔者想用诸如serialize,unserialize之类的函数进行处理,可惜都没有找到合适的;于是自己写了个函数来处理:

function getUrlParam(string) {
	var obj = {};
	if (string.indexOf("?") != -1) {
		var string = string.substr(string.indexOf("?") + 1);
		var strs = string.split("&");
		for(var i = 0; i < strs.length; i ++) {
			var tempArr = strs[i].split("=");
			obj[tempArr[0]] = unescape(tempArr[1]);
		}
	}
	return obj;
}

于是第一处的代码可以这样处理:

$(document).bind('pagebeforechange',function(e,data){
	if (typeof data.toPage !== "string"){
        return;
    }
    var paramUrl = $.mobile.path.parseUrl(/blog_article/data.toPage);
	var params = getUrlParam(paramUrl.search);
});

function getUrlParam(string) {
	var obj = {};
	if (string.indexOf("?") != -1) {
		var string = string.substr(string.indexOf("?") + 1);
		var strs = string.split("&");
		for(var i = 0; i < strs.length; i ++) {
			var tempArr = strs[i].split("=");
			obj[tempArr[0]] = unescape(tempArr[1]);
		}
	}
	return obj;
}



    
[2] Xcode运作不了API文档给的代码或是以前的工程
    来源: 互联网  发布时间: 2014-02-18
Xcode运行不了API文档给的代码或是以前的工程

Xcode换到了4.2 或是4.5遇到了一些问题,之前的代码很多都不能运行,提示如标题所示的错误,在国外论坛上给出了解决办法,如下:

 



在左右边的文件清单面板, 进入工程的 Build Settings ,在architectures的Base SDK上,修改sdk到你的机子的版本就可以了


PS:有时API的文档的示例是组件来的,不是工程文件来的



    
[3] 【多媒体打包格式详解】-MKV【1】
    来源: 互联网  发布时间: 2014-02-18
【多媒体封装格式详解】---MKV【1】

Matroska 开源多媒体容器标准。MKV属于其中的一部分。
Matroska常见的有.MKV视频格式、MKA音频格式、.MKS字幕格式、.MK3D files (stereoscopic/3D video).

1.EBML(Extensible Binary Meta Language)

MKV是建立在EBML这种语言的基础上,所以要了解MKV格式需要先了解EBML这种语言。

EBML是一种类似于XML格式的可扩展二进制元语言,使用可变长度的整数存储,以节省空间。

EBML基本元素结构:

typedef struct {
	vint ID // EBML-ID
	vint size // size of element
	char[size] data // data
} EBML_ELEMENT;

ID标志属性类型

size为后面data部分的大小

data部分为ID所标识属性的实际数据

上面可以看到ID和size的类型都是vint,vint(Unsigned Integer Values of Variable Length)可变长度无符号整型,比传统32/64位整型更加节省空间。

长度计算方法为

长度 = 1 +整数前缀0比特的个数.

从MKV文件中简单接一段来举个例子。这是16进制表示方式


因为每个EBML元素都是由ID size data 三部分组成,我们就按照这些来分析。

将0x428 转成2进制 为 01000010    按照上面规则  前面有1个0 所以知道ID的长度为2,也就是0x4282为ID值。

将0x88 转成2进制为 10001000 1为开头 长度就是1,去掉前缀1变成了00001000 ,也就是 size的值为 8.

接下来的8个字节就是data值:6D 61 74 72 6F 73 6B 61  根据上面ID值查表得知 这个EMBL 名称为DocType 也就是说data的内容是string格式,所以转成askII码 data值就是“matroska” 和后面显示的一致。

所以这个EBML元素就解析出来了

ID=0x4282;

size=8;

data=“matroska” ;

得到的信息就是 DocType = matroska。


2.整体结构

让我们看看MKV的整体框架结构。

Level 0 Grouping Level 1 Level 2 Level 3 EBML Header EBMLVersion   DocType   Segment Meta Seek Information SeekHead Seek SeekID SeekPosition Seek SeekID SeekPosition Segment Information Info Title   SegmentUID   Track Tracks TrackEntry Name TrackNumber TrackType TrackEntry Name TrackNumber TrackType Chapters Chapters Edition Entry   Clusters Cluster Timecode   BlockGroup Block BlockGroup Block ReferenceBlock BlockGroup Block Cluster Timecode   BlockGroup Block BlockGroup Block BlockGroup Block BlockGroup Block BlockDuration Cueing Data Cues CuePoint CueTime CuePosition CuePoint CueTime CuePosition Attachment Attachments AttachedFile FileName FileData AttachedFile FileName FileData Tagging Tags Tag MultiTitle Language Tag MultiTitle Language EBML元素都有自己的级别,每一个高一级的元素由若干次一级的元素组成。
从整个MKV文件整体来看可分为2大部分:

EBML Header和Segment。

EBML Header由EBMLVersion、DocType等子元素组成,包含了文件的版本、文档类型等相关信息。

Segment部分保存了媒体文件的视频和音频的实际数据,其data部分又可以分为SeekHead、Tracks、Cluster等若干子元素。


未完待续!





    
最新技术文章:
▪Android开发之登录验证实例教程
▪Android开发之注册登录方法示例
▪Android获取手机SIM卡运营商信息的方法
▪Android实现将已发送的短信写入短信数据库的...
▪Android发送短信功能代码
▪Android根据电话号码获得联系人头像实例代码
▪Android中GPS定位的用法实例
▪Android实现退出时关闭所有Activity的方法
▪Android实现文件的分割和组装
▪Android录音应用实例教程
docker中文入门学习手册 iis7站长之家
▪Android实现侦听电池状态显示、电量及充电动...
▪Android获取当前已连接的wifi信号强度的方法
▪Android实现动态显示或隐藏密码输入框的内容
▪根据USER-AGENT判断手机类型并跳转到相应的app...
▪Android Touch事件分发过程详解
▪Android中实现为TextView添加多个可点击的文本
▪Android程序设计之AIDL实例详解
▪Android显式启动与隐式启动Activity的区别介绍
▪Android按钮单击事件的四种常用写法总结
▪Android消息处理机制Looper和Handler详解
▪Android实现Back功能代码片段总结
▪Android实用的代码片段 常用代码总结
▪Android实现弹出键盘的方法
▪Android中通过view方式获取当前Activity的屏幕截...
▪Android提高之自定义Menu(TabMenu)实现方法
▪Android提高之多方向抽屉实现方法
▪Android提高之MediaPlayer播放网络音频的实现方法...
▪Android提高之MediaPlayer播放网络视频的实现方法...
▪Android提高之手游转电视游戏的模拟操控
 


站内导航:


特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

©2012-2021,,E-mail:www_#163.com(请将#改为@)

浙ICP备11055608号-3