以前寫過一個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 字元編碼轉換工具
3,在工程中的project----》build setting----》Link-----》找到Other Linker Flags 設定 -ObjC
一般在此處沒有設定的話是看不到這個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的是以分開傳了有興趣的可以下載下傳下來看看
6,進入項目中要先點選開始按鈕,播放按鈕和開始按鈕是用來播放之後對其進行暫停控制的