网站上的洗衣液瓶子做花瓶怎么材质,做渲染的网站,拉新推广平台有哪些,网站开发工程师职业道德直接切入主题#xff0c;要实现的功能是#xff1a;1、ios视频音频边缓存边播放#xff0c;缓存时可以在已下载的部分拖拽进度条。2、缓存到一半退出#xff0c;再次播放同一地址的视频时#xff0c;视频继续下载#xff0c;并且缓存进度已经走到上一次下载的位置。3、无…直接切入主题要实现的功能是1、ios视频音频边缓存边播放缓存时可以在已下载的部分拖拽进度条。2、缓存到一半退出再次播放同一地址的视频时视频继续下载并且缓存进度已经走到上一次下载的位置。3、无论是下载到一半退出还是下载完退出已缓存的数据都存到自己指定的一个路径。如果已下载完下次播放时可以不再走网络直接播放本地文件。4、一个有总时间缓冲进度播放进度的sliderbar。具体效果看唱吧4.1版本以后的视频效果吧用到的几个类1、ASIHttpRequest2、MPMoviePlayerController3、HTTPServerhttps://github.com/robbiehanson/CocoaHTTPServer灵感来源是这篇文章http://hi.baidu.com/suifeng_89/item/603cb0b95bb796ff62388e88实现步骤1、先开一个request去下载要播放的视频文件2、在本地开一个http server拼一个本地地址http://127.0.0.1:xxxx/xxx.mp4丢给MPMoviePlayerController播放。3、本地的server当收到请求时去那个正在下载的文件中读数据即可。断点下载全由ASIHttpRequest实现了缓冲的效果用的是MPMoviePlayerController的它自带了总时间已缓冲的总时间当前时间整个播放的过程就用MPMoviePlayerController。sliderbar是自己写的因为iOS自带的不支持缓冲进度例子https://github.com/Zedenem/UICircularSlider把圆的改成长长的不难吧。。自己曾尝试过在iOS上用socket server实现本地服务器各种失败。后来查到MPMoviePlayerController的请求机制是基于http断点下载那一套逻辑的不像android的socket。HTTPServer已经支持各种断点下载上传。只是有一点需要自己实现当httpserver接受到MPMoviePlayerController的请求时server要先返回一个请求包含了整个视频文件的大小。然后MPMoviePlayerController才会不断请求本地的服务器取数据。我的实现是这样的。当要比方某个视频文件的时候先开启一个request去下载当收到文件总大小的时候存到本地的一个dictionary中request继续下载然后打开localserver拼一个本地url给player让他自动播放。当localserver收到请求时根据要请求的文件去本地读文件的实际大小返回给player然后player就可以播放了。HTTPServer自己已经实现了断点下载的逻辑你可以给他设置一个DocumentRoot进来的文件请求会直接到这个目录下读文件的数据他默认的实现获得文件总大小的逻辑是直接用NSFileManager去取文件的总大小而这里我们需要去自己存到本地的dictionary中读。大约思路就是这样不想写太多东西因为实际自己写的代码真的很少。还是留个思路真正的实现由大家自己研究总之实现起来挺简单的最终效果也很好大家各种放心就好了。后面遇到了几个问题小说一下1、HTTPServer不支持iOS4好像是用到了一个gcd相关的函数不支持因为目前我们ios4的用户比较少了ios7都出来了就直接把ios4的用户抛弃了这里也没有深究。2、MPMoviePlayerController是直接可以播放mp3的因为我们还需要播放音频而且是同一个页面如果全用MPMoviePlayerController是最好的因为不需要切换播放器虽然看起来有点拙。但后来发现点问题就是播放音频的时候有的mp3不能拖拽当你更改音频的播放时间的时候MPMoviePlayerController直接停止了但有的音频是可以的最后研究好像是mp3码率或者格式的问题因为我们已经有很多mp3了再替换之前的mp3不太现实最后的实现就是音频用avplayer播缓冲进度用MPMoviePlayerController的你可以想象代码写的多么脏。。如果大家只做视频或者刚开始做的话最好把这个问题研究一下这里我也没有深究。如何用MPMoviePlayerController缓存在线视频 在iOS本地开启Local Server服务然后 MPMoviePlayerController请求本地Local Server服务。 本地Local Server服务再不停的去对应的视频地址获取视频流。 本地Local Server请求的时候就可以把视频流缓存在本地。