IOS开发----流媒体
来源:互联网 发布:消防球 淘宝 编辑:程序博客网 时间:2024/05/17 06:41
流媒体技术从传输形式上可以分为:渐进式下载和实施流媒体。
一.渐进式下载
它是介于实时播放和本地播放之间的一种播放方式,渐进式下载不必等到全部下载完成后在播放,可以边下载边播放,播放完成后,整个文件会保存下来。从用户的体验上合播放方的效果来看,渐进式下载和实时流媒体没有什么区别,不过是渐进式下载保留有文件在本地。下面来介绍下渐进式下载的开发
渐进式下载的API和本地播放的API没有什么太大的区别,可以使用MediaPlayer框架中得MediaPlayerController和MediaPlayerViewController进行播放,亦可以使用AVFoundation框架中得AVPlayer进行播放。在mac os系统下都有一个Apache HTTP服务器,首先打开服务,使用命令行:sudo apachectl -v 输入密码后 接着输入 sudo apachectl start 就可以了 然后把要播放的文件放到/Library/WebServer/documents下就可以了
如图
我们使用MPMoviePlayerViewController播放
if(_moviewPlayer == nil){ _moviewPlayer = [[MPMoviePlayerViewController alloc] initWithContentURL:[self movieUrl]]; _moviewPlayer.moviePlayer.scalingMode = MPMovieScalingModeAspectFill; _moviewPlayer.moviePlayer.controlStyle = MPMovieControlStyleEmbedded; [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(finishMoview:) name:MPMoviePlayerPlaybackDidFinishNotification object:nil]; }-(NSURL*)movieUrl{ return [NSURL URLWithString:@"http://localhost/stream/stream.mp4"];}-(void)finishMoview:(NSNotification* )notion{ NSLog(@"播放完成"); [[NSNotificationCenter defaultCenter] removeObserver:self]; [_moviewPlayer.view removeFromSuperview]; _moviewPlayer = nil;}
这样就完成了 渐进式下载的开发,效果和本地播放没什么区别。
二,实时流媒体
实时流媒体是一边接收数据包一边进行播放,本地不保留文件副本,数据总是实时传送的。用户可以快进快退,不过,实时流媒体播放必须保证数据包的传输速度大于文件的播放速度,否则影响播放效果。
实时流媒体传输的协议有:RTSP和HLS、MMS。HLS是苹果公司提出的,它只请求基本的HTTP报文,与RTSP和MMS不同,HLS可以穿过任何允许HTTP数据通过的防火墙。而且,HLS对服务器没有特殊要求,只要能够提供HTTP服务就可以了。
HLS的解决方案:首先通过音频或视频采集设备采集数据,然后将数据传递给Server对音频或者视频进行编码,编码要求采用MPEG-2格式,编码完成之后再通过媒体文件分隔工具进行分割,然后再讲这些分割好的文件和他们的索引文件发布到发布服务器上,然后客户端就可以访问了。(ios设备最低要求是 ios3.0以上版本,Safari浏览器最低要求是4.0以上版本)
下一篇重点总结下 实时流媒体服务器配置以及编码。
- IOS开发----流媒体
- iOS流媒体开发资料大全
- iOS流媒体开发的资料
- iOS流媒体开发的一些参考资料
- iOS流媒体开发的一些参考资料
- iOS流媒体开发的一些参考资料
- iOS开发上传图片-----流媒体格式
- iOS 流媒体
- 流媒体开发
- iOS流媒体开发的一些参考资料(二)
- iOS流媒体开发之一:总结系统提供的接口
- iOS流媒体开发之一:总结系统提供的接口
- iOS流媒体开发之一:总结系统提供的接口
- [置顶] iOS流媒体开发之一:总结系统提供的接口
- IOS流媒体播放
- ios 流媒体 MpMovieplayerController
- IOS流媒体播放
- IOS流媒体播放
- 数据库 SQL千万级数据规模处理概要
- iText操作PDF学习(三)
- js如何实现继承
- DaikonForge
- 怎么把PDF转换成word而不乱码
- IOS开发----流媒体
- intellij 修改jsp 或者 html 自动加载页面变化
- Spring声明式事务配置管理方法
- 使用SQLServer 2008的CDC功能实现数据变更捕获
- iOS开发UI篇—xib的简单使用
- 双人对战的球类游戏ios源码
- windows mysql 自动备份的几种方法
- 【Fragment使用】(一)FragmentPagerAdapter与FragmentStatePagerAdapter区别
- 挑战2:实现一个转盘大抽奖(老虎机效果)