当前位置: 编程技术>移动开发
本页文章导读:
▪怎么得到优酷网mp4格式视频文件url 如何得到优酷网mp4格式视频文件url
前言
众所周知,视频在网页中使用FLV格式是最常用和方便的(原因你懂得),但是当我们在移动平台上就会遇到麻烦(FLASH不被这些移动设备支持,为啥?.........
▪ 定位程序疏失位置 定位程序出错位置
在.m文件中加入#ifdef _FOR_DEBUG_
-(BOOL) respondsToSelector:(SEL)aSelector {
printf("SELECTOR: %s\n", [NSStringFromSelector(aSelector) UTF8String]);
return [super respondsToSelector:aSelector];
}
#endif
然.........
▪ IntelliJ IDEA将应用封装到App Store图例详解 IntelliJ IDEA将应用打包到App Store图例详解
在Intelli IDEA中,Android应用程序一旦完成编译,都将被打包为APK文件。这个程序包将包含二进制文件和资源。之后就可以被发布到Google Play等应用商店.........
[1]怎么得到优酷网mp4格式视频文件url
来源: 互联网 发布时间: 2014-02-18
如何得到优酷网mp4格式视频文件url
前言
众所周知,视频在网页中使用FLV格式是最常用和方便的(原因你懂得),但是当我们在移动平台上就会遇到麻烦(FLASH不被这些移动设备支持,为啥?我也不知道!)但是这样一个需求来了,在Android平台上播放YouKu的视频。
So, 我就开始研究了!
分析
经过一番研究我发现,他们其实是有另外一个格式的视频存在,但是需要成为他们的合作伙伴(也就是想用的得意思意思)。因此得出结论方法有二:
成为他们的合作伙伴(这得花点买路钱)。
条条大路通罗马,绕道走。
过程
方法一,这里就不讨论了。我们主要讲方法二(如何绕道)。
第一步:网页内嵌的播放地址 例如:http://player.youku.com/player.php/Type/Folder/Fid/18117290/Ob/1/sid/XNDQ0MDQzMTgw/v.swf
猜测可得出“XNDQ0MDQzMTgw”这一段为视频的索引也就是ID
而优酷android app请求服务器的url为:
http://api.3g.youku.com/layout/phone2_1/play?point=1&id=XNDQ0MDQzMTgw&pid=352e7f78a0bc479b&format=4&language=guoyu&audiolang=1&guid=c7a0fd9f8f19ea5cbafde16f327f8004&ver=2.3.1&operator=%E4%B8%AD%E5%9B%BD%E8%81%94%E9%80%9A_46001&network=WIFI
返回值是一个json数据如下:
{
"status":"success",
"lang":"",
"title":"\u5916\u4ea4\u90e8\u56de\u5e94\u65e5\u9a7b\u534e\u5927
\u4f7f\u5750\u8f66\u60ac\u6302\u7684\u56fd\u65d7\u88ab\u62a2\uff1a\u4e2d\u65b9\u6b63\u5728
\u8ba4\u771f\u8c03\u67e5[\u770b\u4e1c\u65b9]",
"weburl":"http://v.youku.com/v_show/id_XNDQ0MDQzMTgw.html",
"videoid":"XNDQ0MDQzMTgw",
"results":{
"3gphd":[
{
"seconds":26,"url":"http://f.youku.com/player/getFlvPath/sid/134625952093737_01/st/mp4/fileid/
0300200100503C2912CACF06F7B7BE321D4B39-09C7-D266-1DC7-72FBD749E129?
K=74d69d0e9a11e5ab261c87ec&hd=0",
"id":1,
"size":959876
}
],
"3gphd_rtsp":[
{"seconds":26,"url":"rtsp://vod1.3g.youku.com/0300200100503C2912CACF06F7B7BE321D4B3
9-09C7-D266-1DC7-72FBD749E129.mp4","id":1,"size":959876}
]
},
"points":[],
"totalseconds":29.3,
"audiolang":[]
}
view rawgistfile1.json hosted with ❤ by GitHub
根据几次测试得出结论:
results结果中的rtsp协议结果为mp4直实地址。但是悲剧的是这个协议我们用不起来!所以只能使用上面的http的url
http://f.youku.com/player/getFlvPath/sid/134625952093737_01/st/mp4/fileid/0300200100503C2912CACF06F7B7BE321D4B39-09C7-D266-1DC7-72FBD749E129?K=74d69d0e9a11e5ab261c87ec&hd=0
再请求这个url查看response的header中type为mp4数据,而且已经经过服务器根据您当前网络环境计算返回给你一个下载速度最快的url了(据猜测)。
得到json的url中参数可根据语意猜测,但是个另参数具体用途还没有揣摩清楚,不过基本没有大碍了。以下是参数含义的猜测,不一定正确哈。
point 当前播放秒数
id 视频索引ID
pid 未知
format 可能是视频格式
language 未知
audiolang 未知
guid 未知
ver 系统版本
operator 移动信号运营商(如:中国联通)_46001(这个部分不理解)
network(当前的上网方式)
结论
把播放视频的索引id代入到api的url参数中,从服务器得到mp4视频的地址……
[2] 定位程序疏失位置
来源: 互联网 发布时间: 2014-02-18
定位程序出错位置
在.m文件中加入
然后在 other c flags中加入-D _FOR_DEBUG_(记住请只在Debug Configuration下加入此标记)。这样当你程序崩溃时,Xcode的console上就会准确地记录了最后运行的object的方法。
在.m文件中加入
#ifdef _FOR_DEBUG_ -(BOOL) respondsToSelector:(SEL)aSelector { printf("SELECTOR: %s\n", [NSStringFromSelector(aSelector) UTF8String]); return [super respondsToSelector:aSelector]; } #endif
然后在 other c flags中加入-D _FOR_DEBUG_(记住请只在Debug Configuration下加入此标记)。这样当你程序崩溃时,Xcode的console上就会准确地记录了最后运行的object的方法。
[3] IntelliJ IDEA将应用封装到App Store图例详解
来源: 互联网 发布时间: 2014-02-18
IntelliJ IDEA将应用打包到App Store图例详解
在Intelli IDEA中,Android应用程序一旦完成编译,都将被打包为APK文件。这个程序包将包含二进制文件和资源。之后就可以被发布到Google Play等应用商店或者是直接安装在应用程序中。
如果程序包没有数字签名,那么就不能发布到任何应用商店中。应用程序要签名的话,就必须先获得一个证书。证书将被用来识别应用程序的作者。
1 获得证书
Java SDK将提供一个用于生成和管理证书的工具keytool,用户可以在Java SDK的目录中找到。这样一来在Android开发中,就没有必要从专门的授权机构购买证书,使用keytool生成的证书就可以满足需求了。Intelli IDEA就具有这种工具,并且支持证书的生成。
2 应用程序签名
拥有证书之后,开发者需要编译发布的应用程序并签署可执行文件。同时Intellij IDEA 也具有一个Java SDK的命令行工具:jarsigner。
启动签署应用程序向导,单击Build|Generate为APK进行数字签名。
3 从IntellijIDEA 获取证书
如果还没有创建证书,那么用户可以在前面的对话框中创建。只需要点击创建,就将显示下面的对话框。
4 部署应用程序
在向导的最后,还必须完成APK文件的发布编辑和数字签名。因为这仅仅是上传应用程序到App Store或者直接到可用设备的文件。
最新技术文章: