阿里云視頻直播系列文章-iOS播放SDK

關(guān)于iOS播放器SDK

  • 下載

iOS播放器SK開發(fā)包(2016-12-15)

快速開發(fā)

  • 創(chuàng)建用戶

    請看iOS播放器SDK說明,再次不在復(fù)述

  • sdk包添加

    一定要按照下圖的導(dǎo)入方式,不然運行的時候會報這個錯誤dyld: Library not loaded: @rpath/AliyunPlayerSDK.framework/AliyunPlayerSDK

  • 用戶權(quán)限驗證

    • 在項目中導(dǎo)入頭文件#import <AliyunPlayerSDK/AliyunPlayerSDK.h>
    • 用戶需要用申請得到的AccessKeyID和AccessKeySecret進行權(quán)限驗證,才能夠使用播放器舅桩。權(quán)限驗證需要通過實現(xiàn)AliVcAccessKeyProtocol協(xié)議來完成咏闪。
    [AliVcMediaPlayer setAccessKeyDelegate:self];
    
    • 權(quán)限驗證可以在播放器創(chuàng)建之前進行夜矗,且播放多個視頻只需要驗證一次即可怜珍。通過協(xié)議的getAccessKeyIDSecret接口,sdk可以獲取用戶的AccessKeyID和AccessKeySecret來完成驗證。
NSString* accessKeyID = @"QxJIheGFRL926hFX";
NSString* accessKeySecret = @"hipHJKpt0TdznQG2J4D0EVSavRH7mR";
-(AliVcAccesskey*)getAccessKeyIDSecret
{
    AliVcAccesskey* accessKey = [[AliVcAccesskey alloc] init];
    accessKey.accessKeyId = accessKeyID;
    accessKey.accessKeySecret = accessKeySecret;
    return accessKey;
}
  • 播放器的基本模塊及播放器的工作流程

    播放器的基本模塊及播放器的工作流程
  • 使用SDK開發(fā)播放器時,基本的開發(fā)步驟為:

1.alloc播放器后寿谴,調(diào)用create創(chuàng)建播放器,并傳入view顯示窗口

2.注冊通知響應(yīng)函數(shù)失受。

3.調(diào)用prepareToPlay準(zhǔn)備開始播放讶泰,傳入要播放的視頻地址。

4.調(diào)用play接口進行播放拂到。

項目開發(fā)

  • 播放視頻
    - (void)playVideo {
    
    if (self.playerURL == nil) return;
    //1. 新建播放器
    self.player = [[AliVcMediaPlayer alloc]init];
    //2. 創(chuàng)建播放器,傳入顯示窗口
    [self.player create:self.playView];
    //3. 注冊完成通知
    [self addPlayObserver];
    //4.設(shè)置網(wǎng)絡(luò)超時時間
    self.player.timeout = 25000;
    //5.設(shè)置渲染的模式痪署,適應(yīng)全屏還是充滿全屏
    self.player.scalingMode = scalingModeAspectFitWithCropping;
    //傳入播放地址,初始化視頻兄旬,準(zhǔn)備播放
    [self.player prepareToPlay:self.playerURL];
    //開始播放
    [self.player play];
}

  • 注冊通知
- (void)addPlayObserver {
   //成功的通知
   [[NSNotificationCenter defaultCenter] addObserver:self
                                            selector:@selector(OnVideoPrepared:) name:AliVcMediaPlayerLoadDidPreparedNotification object:self.player];
   //注冊錯誤通知
   [[NSNotificationCenter defaultCenter] addObserver:self
                                            selector:@selector(OnVideoError:) name:AliVcMediaPlayerPlaybackErrorNotification object:self.player];
}
  • 通知事件
 - (void)OnVideoPrepared:(NSNotification *)notification {
    //收到完成通知后狼犯,獲取視頻的相關(guān)信息,更新界面相關(guān)信息
    self.dimIamge.hidden = YES;
}

- (void)OnVideoError:(NSNotification *)notification {
    NSString* error_msg = @"未知錯誤";
    AliVcMovieErrorCode error_code = self.player.errorCode;
    switch (error_code) {
        case ALIVC_ERR_FUNCTION_DENIED:
            error_msg = @"未授權(quán)";
            break;
        case ALIVC_ERR_ILLEGALSTATUS:
            error_msg = @"非法的播放流程";
            break;
        case ALIVC_ERR_INVALID_INPUTFILE:
            error_msg = @"無法打開";
            
            break;
        case ALIVC_ERR_NO_INPUTFILE:
            error_msg = @"無輸入文件";
            
            break;
        case ALIVC_ERR_NO_NETWORK:
            error_msg = @"網(wǎng)絡(luò)連接失敗";
            break;
        case ALIVC_ERR_NO_SUPPORT_CODEC:
            error_msg = @"不支持的視頻編碼格式";
            break;
        case ALIVC_ERR_NO_VIEW:
            error_msg = @"無顯示窗口";
            break;
        case ALIVC_ERR_NO_MEMORY:
            error_msg = @"內(nèi)存不足";
            break;
        case ALIVC_ERR_DOWNLOAD_TIMEOUT:
            error_msg = @"網(wǎng)絡(luò)超時";
            break;
        case ALIVC_ERR_UNKOWN:
            error_msg = @"未知錯誤";
            break;
        default:
            break;
    }
        
    if(error_code > 500 || error_code == ALIVC_ERR_FUNCTION_DENIED) {
        
        [self.player reset];
        UIAlertView *alter = [[UIAlertView alloc] initWithTitle:[self.playerURL absoluteString] message:error_msg delegate:nil cancelButtonTitle:@"OK" otherButtonTitles:nil];
        
        [alter show];
        return;
    }
    
    if(error_code == ALIVC_ERR_DOWNLOAD_TIMEOUT) {
        
        [self.player pause];
        
        UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"錯誤提示"
                                                        message:error_msg
                                                       delegate:self
                                              cancelButtonTitle:@"等待"
                                              otherButtonTitles:@"重新連接",nil];
        
        [alert show];
    }

}

  • 停止播放

    [self.player stop];
    
    
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末领铐,一起剝皮案震驚了整個濱河市悯森,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌绪撵,老刑警劉巖瓢姻,帶你破解...
    沈念sama閱讀 206,214評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異音诈,居然都是意外死亡幻碱,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,307評論 2 382
  • 文/潘曉璐 我一進店門细溅,熙熙樓的掌柜王于貴愁眉苦臉地迎上來褥傍,“玉大人,你說我怎么就攤上這事谒兄∷よ耄” “怎么了社付?”我有些...
    開封第一講書人閱讀 152,543評論 0 341
  • 文/不壞的土叔 我叫張陵承疲,是天一觀的道長邻耕。 經(jīng)常有香客問我,道長燕鸽,這世上最難降的妖魔是什么兄世? 我笑而不...
    開封第一講書人閱讀 55,221評論 1 279
  • 正文 為了忘掉前任,我火速辦了婚禮啊研,結(jié)果婚禮上御滩,老公的妹妹穿的比我還像新娘。我一直安慰自己党远,他們只是感情好削解,可當(dāng)我...
    茶點故事閱讀 64,224評論 5 371
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著沟娱,像睡著了一般氛驮。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上济似,一...
    開封第一講書人閱讀 49,007評論 1 284
  • 那天矫废,我揣著相機與錄音,去河邊找鬼砰蠢。 笑死蓖扑,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的台舱。 我是一名探鬼主播律杠,決...
    沈念sama閱讀 38,313評論 3 399
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼竞惋!你這毒婦竟也來了俩功?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 36,956評論 0 259
  • 序言:老撾萬榮一對情侶失蹤碰声,失蹤者是張志新(化名)和其女友劉穎诡蜓,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體胰挑,經(jīng)...
    沈念sama閱讀 43,441評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡蔓罚,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 35,925評論 2 323
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了瞻颂。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片豺谈。...
    茶點故事閱讀 38,018評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖贡这,靈堂內(nèi)的尸體忽然破棺而出茬末,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 33,685評論 4 322
  • 正文 年R本政府宣布丽惭,位于F島的核電站击奶,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏责掏。R本人自食惡果不足惜柜砾,卻給世界環(huán)境...
    茶點故事閱讀 39,234評論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望换衬。 院中可真熱鬧痰驱,春花似錦、人聲如沸瞳浦。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,240評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽叫潦。三九已至另萤,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間诅挑,已是汗流浹背四敞。 一陣腳步聲響...
    開封第一講書人閱讀 31,464評論 1 261
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留拔妥,地道東北人忿危。 一個月前我還...
    沈念sama閱讀 45,467評論 2 352
  • 正文 我出身青樓,卻偏偏與公主長得像没龙,于是被迫代替她去往敵國和親铺厨。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 42,762評論 2 345

推薦閱讀更多精彩內(nèi)容