关于MPMoviePlayerController 缓存播放的一些技术准备
如果是视频文件,比如Mp4,avi,rmvb等可根据下面的这边文章推荐的Demo(http://code4app.com/ios/5292c381cb7e8445678b5ac2),经过测试可以进行同步缓存播放.
如果是视频流MU38上面Demo,行不通.(视频流是多文件,下载单个肯定不行)
视频流缓存播放实现步骤.
以优酷为例(经测试爱奇艺,搜狐,新浪都可以)
1.解析M3U8 直接通过M3U8Kit 解析
或js解析
- (void)webViewDidFinishLoad:(UIWebView *)webView { NSString *lJs = @"document.documentElement.innerHTML"; NSString *lHtml = [webView stringByEvaluatingJavaScriptFromString:lJs]; // NSString *lJs2 = @"(document.getElementsByTagName(\"video\")[0]).getElementsByTagName(\"source\")[0].src"; //qiyi NSString *lJs2 = @"(document.getElementsByTagName(\"video\")[0]).src"; // youku,tudou,ku6 ,souhu NSString *lm3u8 = [webView stringByEvaluatingJavaScriptFromString:lJs2]; NSLog(@"video source:%@",lm3u8); }
2.下载(待解决)
3.播放
相关资料
MPMoviePlayerController 获取视频缓冲大小
关于流媒体(m3u8)的播放与下载
在查找资料时看到
polyv-ios-client-demo 保利威视(POLYV)视频直播云服务 (收费的)
MPMoviePlayerController 只支持能在iPhone或者iPod上直接播放(不借助其他播放器)的格式
.mov, .mp4,.mpv, and .3gp
反过来就是说, rmvb mkv 等一些比较常用的是不支持的,只能靠别的(如ffmpeg等)
为什么奇艺要把 iPad 客户端上的 MP4 流改为 TS 流呢?TS 相对于 MP4 有什么优势呢? (来自知乎)
HTTP Live Streaming直播(iOS直播)技术分析与实现
Demo:关于m3u8的解析、下载、拼接和本地播放,好像可以,不知性能如何
https://github.com/luoxubin/XB2
iOS-视屏播放AVPlayer&MPMoviePlayerController AVPlayer自带缓存
资源:
http://pl.youku.com/playlist/m3u8?vid=XMTI4NzQyMDM0MA==&type=flv&ts=1441699625&keyframe=0&ep=eyaQG0%2BEX8gC4CbYiD8bM3mzdH9dXJZ3kmaB%2F5gDScZQNejC6DPcqJuxSf8%3D&sid=944169962557012dea08b&token=6170&ctype=12&ev=1&oip=992603906
http://static.tripbe.com/videofiles/20121214/9533522808.f4v.mp4
http://v.chuanke.com/vedio/1/08/65/10865711ff6997a671e6622352385208.mp4