以前写过一个app 使用流媒体播放,后来离职之后就没有做过类似的东西,今天重新做了下写个笔记记一下,此处使用vitamio三方来做播放,由于没有数据后台就用了本地的播放,最后只需要修改播放网址就可以,没有以前上班时候做产品做的功能全,在这种视频播放中没有快进拖动进度显示等等自己看着文档可以自己添加的,今天只做了简单的播放暂停功能;此处附上官网的文档:https://www.vitamio.org/docs/Tutorial/2014/0211/30.html
1,在开始之前新建项目
2,在工程中导入vitamio并导入以下库注意在XCode7,8中.dylib的文件后辍改为tdb
- AVFoundation.framwork 音视频播放基本工具
- AudioToolbox.framwork 音频控制API
- CoreGraphics.framwork 轻量级2D渲染API
- CoreMedia.framwork 音视频低级API
- CoreVideo.framwork 视频低级API
- Foundation.framwork 基本工具
- MediaPlayer.framwork 系统播放器接口
- OpenGLES.framwork 3D图形渲染API
- QuartzCore.framwork 视频渲染输出需要
- UIKit.framwork 界面API
- libbz2.dylib 压缩工具
- libz.dylib 压缩工具
- libstdc++.dylib C++标准库
- libiconv.dylib 字符编码转换工具
一般在此处没有设置的话是看不到这个Other Linker Flags的,需要选all然后才能看到设置,如果不设置是无法播放视频的
4,就是界面设置,代理设置等等此处简单的放一点代码具体的在最后的两个资源中合并项目之后自己看代码
//注册播放器并播放
-(void)prepareVideo
{
if (!_vMediplayer) {
_vMediplayer = [VMediaPlayer sharedInstance];
[_vMediplayer setupPlayerWithCarrierView:self.preview withDelegate:self];
}
[UIApplication sharedApplication].idleTimerDisabled = YES;
if(_urlString)
{
//播放时不要锁屏
NSString *encodedValue = [_urlString stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
NSURL* videoURL = [NSURL fileURLWithPath:encodedValue];
[_vMediplayer setDataSource:videoURL];
[_vMediplayer prepareAsync];
}
}
//代理
- (void)mediaPlayer:(VMediaPlayer *)player didPrepared:(id)arg
{
didPrepard = YES;
[player start];
}
- (void)mediaPlayer:(VMediaPlayer *)player playbackComplete:(id)arg
{
//此处为一个是视频源播放完成之后对其调用的操作;
[player reset];
didPrepard = NO;
NSLog(@"reset");
}
- (void)mediaPlayer:(VMediaPlayer *)player error:(id)arg
{
NSLog(@"VMediaPlayer Error: %@", arg);
}
5,资源地址
http://download.csdn.net/detail/wang6177/9761890 //iOS vitamio库把此文件解压之后放到工程中的vitamio文件夹中
http://download.csdn.net/detail/wang6177/9761920 //项目工程缺乏vitamio库,因为只能传60M的所以分开传了有兴趣的可以下载下来看看