如果是视频文件,比如Mp4,avi,rmvb等可根据下面的这边文章推荐的Demo(http://code4app.com/ios/5292c381cb7e8445678b5ac2),经过测试可以进行同步缓存播放.

iOS开发笔记,简单实现视频音频的边下边播

如果是视频流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 有什么优势呢? (来自知乎)

[AS3]HLS分片和m3u8

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

关于MPMoviePlayerController 缓存播放的一些技术准备的更多相关文章

  1. iOS视频边下边播--缓存播放数据流

    实现视频边下边播,这里的边下边播不是单独开一个子线程去下载,而是把视频播放的数据给保存到本地.简而言之,就是使用一遍的流量,既播放了视频,也保存了视频. 用到的框架:<AVFoundation/ ...

  2. 视频边下边播--缓存播放数据流-b

    google搜索“iOS视频变下边播”,有好几篇博客写到了实现方法,其实只有一篇,其他都是copy的,不过他们都是使用的本地代理服务器的方式. 原理很简单,但是缺点也很明显,需要自己写一个本地代理服务 ...

  3. MPMoviePlayerController 电影播放器—备用

    MPMoviePlayerController 与AVAudioPlayer有点类似,前者播放视频,后者播放音频,不过也有很大不同,MPMoviePlayerController 可以直接通过远程UR ...

  4. 关于MPMoviePlayerController类播放视频时,外放没有声音的问题(ios)

    一.导入音频资源类 #import "AVFoundation/AVAudioSession.h" 二.在播放视频的方法中加一句支持外放的代码 [[AVAudioSession s ...

  5. (ios)MPMoviePlayerController首次播放视频的时候,没有控制条

    问题: 在视频播放时,现在控制条采用磨砂的效果,会遮罩部分视频 解决思路 1 播放器直接设置不带控制条,在app在 Foreground状态,默认播放器暂停,这样需要在获得Foreground事件,进 ...

  6. docker+fastdfs+nginx 实现分布式大文件存储系统以及视频缓存播放

    废话不多说,直接开撸 首先是一些准备工作: 1.关闭防火墙 service iptables stop --- fastdfs虽然在docker部署,但是使用的是主机网络,所以关闭防火墙. 2  下载 ...

  7. HTML5视频播放练习:鼠标经过视频播放,鼠标移除停止播放,再次经过继续播放。

    随着HTML5的广泛应用,在一些网站中,经常看到有些预览的短视频预览,鼠标经过就会播放,移除就会停止播放,再次移进去就会继续播放. 自己也研究着做一个比较简单的类似的练习. 视频可以自己到包图网下载, ...

  8. 在iOS开发中如何播放视频

     技术博客http://www.cnblogs.com/ChenYilong/  新浪微博http://weibo.com/luohanchenyilong  如何播放视频 •iOS提供了叫做MPMo ...

  9. C++ 播放音频流(PCM裸流)--改善

    直接上代码,如果有需要可以直接建一个win32控制台程序然后将代码拷过去改个文件名就可以用了(注意将声道和频率与你自己的文件对应).当然我自己也用VS2008写了个例子上传了,如果有需要下载地址如下: ...

随机推荐

  1. Shell调试Debug的三种方式

    Shell脚本进行Debug调试的三种方法如下: 1.在调用脚本的时候开启deubg sh -x shell.sh 2.在脚本文件首行开启deubg #!/bin/bash -x 3. 使用set开启 ...

  2. Swoole 中使用 PDO 连接池、Redis 连接池、Mysqli 连接池

    连接池使用说明 所有连接池的实现均基于 ConnectionPool 原始连接池: 连接池的底层原理是基于 Channel 的自动调度: 开发者需要自己保证归还的连接是可重用的: 若连接不可重用,需要 ...

  3. CSS基础-4 定位

    CSS定位和浮动 css定位:改变页面的位置 定位机制有以下三种 普通流 浮动 绝对布局 定位的属性: position:把元素放在一个静态的.相对的.绝对的.或固定的位置中 top          ...

  4. 数学库Sage安装和使用

    什么是Sage? Sage是免费的.开源的数学软件,支持代数.几何.数论.密码学.数值计算和相关领域的研究和教学. 可以简单看成一个数学库 下载 国内地址 安装 Windows下安装 下载安装程序即可 ...

  5. pip list 精确查找某一模块的方法

    1. 今天搜资料的时候get一项技能: pip list精确查找某一模块 命令如下: pip list | findstr "win32" (此处win32可以替换成任意想查找的模 ...

  6. NIO【同步非阻塞io模型】关于 文件io 的总结

    1.前言 这一篇随笔是写 NIO 关于文件输入输出的总结 /* 总结: 1.io操作包括 socket io ,file io ; 2.在nio模型,file io使用fileChannel 管道 , ...

  7. centos7 date时间命令

    date "+%F %T" %F     full date; same as %Y-%m-%d  --相当于年月日格式 %T     time; same as %H:%M:%S ...

  8. 日志收集系统系列(四)之LogAgent优化

    实现功能 logagent根据etcd的配置创建多个tailtask logagent实现watch新配置 logagent实现新增收集任务 logagent删除新配置中没有的那个任务 logagen ...

  9. 51 Nod 1083 矩阵取数问题(动态规划)

    原题链接:https://www.51nod.com/onlineJudge/questionCode.html#!problemId=1083 题目分析:通过读题发现我们只能往右边或者下边走,意味着 ...

  10. testng.xml 执行多个测试用例

    1.在工程名字上点击右键,点击[New]-->[File] 2.在弹出的[New File]对话框中的[File name]输入[testng.xml],点击[Finish]即创建了一个test ...