AirPlay使用詳解

AirPlay使用詳解

先上Demo地址 https://github.com/HeYming/AirPlayer

之前項目中,老大要求需要支持隔空瞭稼,特地研究下這個是如何使用。

AirPlay

MPVolumeView

MPVolumeView是MediaPlayer框架里面的一個組件丈氓,調(diào)節(jié)音量使用的控件旧乞。但是他在iOS 9.0之前测蘑,還可以用來支持AirPlay功能。

_View_airplay = [[MPVolumeView alloc] initWithFrame:CGRectMake(20, 350, 30, 30)];
_View_airplay.showsVolumeSlider = NO;    
[self.view addSubview:_View_airplay];

他的用法很簡單制肮,創(chuàng)建一個View冒窍,設置大小位置,放到View上就可以了豺鼻。
但是這個方法在iOS9.0之后就取消了综液。且在無AirPlay設備的時候是不會顯示的。
當有AirPlay設備后儒飒,他就會顯示出來谬莹。注意他是個白色icon,背景色為白色的時候可能會看不見。

AVRoutePickerView

那么在iOS9之后MPVolumeView不再更新了就沒有新的AirPlay組件了嗎附帽?
當然不會埠戳,蘋果在iOS11的時候,在AVKit框架中加入了AVRoutePickerView組件士葫,用來代替原來的MPVolumeView乞而。

AVRoutePickerView * view = [[AVRoutePickerView alloc]initWithFrame:CGRectMake(100, 350, 30, 30)];
//活躍狀態(tài)顏色
view.activeTintColor = [UIColor redColor];
//設置代理
view.delegate = self;
[self.view addSubview:view];

基本上看起來跟MPVolumeView沒有什么區(qū)別,但是AVRoutePickerView的默認icon改了慢显,注意區(qū)分爪模。


icon

AVRoutePickerView也新增了兩個代理:

//AirPlay界面彈出時回調(diào)
- (void)routePickerViewWillBeginPresentingRoutes:(AVRoutePickerView *)routePickerView API_AVAILABLE(ios(11.0)){
    _lab.text = @"AirPlay界面彈出時回調(diào)";
}
//AirPlay界面結束時回調(diào)
- (void)routePickerViewDidEndPresentingRoutes:(AVRoutePickerView *)routePickerView API_AVAILABLE(ios(11.0)){
    _lab.text = @"AirPlay界面結束時回調(diào)";
}

這兩個代理是在彈出選擇設備界面的時候調(diào)用的,可以把暫停開始功能加入到這個代理方法里面增加用戶體驗荚藻。


delegate

需要注意的是屋灌,AVRoutePickerView在周邊沒有AirPlay設備的時候也會顯示icon。

手動管理

這個就直接看DEMO吧应狱,這部分代碼來源于https://github.com/coderMYC/Airplay這位大佬的項目共郭。
這部分可以在無音視頻的情況下連接到AirPlay設備,在將播放連接丟給AirPlay設備疾呻。親測可以后臺播放除嘹,但是附近無AirPlay設備的時候,也是無法查找到設備的岸蜗。

其他事項

AirPlay可以在當前界面沒有音視頻的時候創(chuàng)建尉咕,當連接到AirPlay設備后,音視頻播放會直接在AirPlay設備上播放而不在當前設備上播放璃岳,這點需要注意年缎。

AirPlay功能實現(xiàn)很簡單,但是存在換代的問題铃慷,iOS11之前用的MPVolumeView所在的框架播放器单芜,功能簡陋且原生不支持進度條拖動。


MPVolumeView

iOS11之后的AVKit框架中AVPlayerViewController播放器則功能更豐富一些犁柜,如果不需要深度定制洲鸠,建議大家使用AVPlayerViewController播放器來播放視頻。


MPVolumeView

當然馋缅,AVPlayer也不是萬能的坛怪,他無法播放flv格式的視頻。當AVPlayer也無法滿足需求的時候股囊,這個時候萬能播放解碼器FFmpeg來了袜匿。知名視頻播放框架ijkplayer就采用了MediaPlayer、AVPlayer和FFmpeg三種解碼模式稚疹。但是在FFmpeg模式下居灯,AirPlay設備只能播放音頻祭务,不能播放視頻,目前還無解決方案怪嫌,有哪位大神有方案請告知义锥。

最后編輯于
?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市岩灭,隨后出現(xiàn)的幾起案子拌倍,更是在濱河造成了極大的恐慌,老刑警劉巖噪径,帶你破解...
    沈念sama閱讀 216,496評論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件柱恤,死亡現(xiàn)場離奇詭異,居然都是意外死亡找爱,警方通過查閱死者的電腦和手機梗顺,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,407評論 3 392
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來车摄,“玉大人寺谤,你說我怎么就攤上這事∷辈ィ” “怎么了变屁?”我有些...
    開封第一講書人閱讀 162,632評論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長意狠。 經(jīng)常有香客問我粟关,道長,這世上最難降的妖魔是什么摄职? 我笑而不...
    開封第一講書人閱讀 58,180評論 1 292
  • 正文 為了忘掉前任誊役,我火速辦了婚禮获列,結果婚禮上谷市,老公的妹妹穿的比我還像新娘。我一直安慰自己击孩,他們只是感情好迫悠,可當我...
    茶點故事閱讀 67,198評論 6 388
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著巩梢,像睡著了一般创泄。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上括蝠,一...
    開封第一講書人閱讀 51,165評論 1 299
  • 那天鞠抑,我揣著相機與錄音,去河邊找鬼忌警。 笑死搁拙,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播箕速,決...
    沈念sama閱讀 40,052評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼酪碘,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了盐茎?” 一聲冷哼從身側響起兴垦,我...
    開封第一講書人閱讀 38,910評論 0 274
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎字柠,沒想到半個月后探越,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,324評論 1 310
  • 正文 獨居荒郊野嶺守林人離奇死亡募谎,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,542評論 2 332
  • 正文 我和宋清朗相戀三年扶关,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片数冬。...
    茶點故事閱讀 39,711評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡节槐,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出拐纱,到底是詐尸還是另有隱情铜异,我是刑警寧澤,帶...
    沈念sama閱讀 35,424評論 5 343
  • 正文 年R本政府宣布秸架,位于F島的核電站揍庄,受9級特大地震影響,放射性物質發(fā)生泄漏东抹。R本人自食惡果不足惜蚂子,卻給世界環(huán)境...
    茶點故事閱讀 41,017評論 3 326
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望缭黔。 院中可真熱鬧食茎,春花似錦、人聲如沸馏谨。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,668評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽惧互。三九已至哎媚,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間喊儡,已是汗流浹背拨与。 一陣腳步聲響...
    開封第一講書人閱讀 32,823評論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留艾猜,地道東北人买喧。 一個月前我還...
    沈念sama閱讀 47,722評論 2 368
  • 正文 我出身青樓攀甚,卻偏偏與公主長得像,于是被迫代替她去往敵國和親岗喉。 傳聞我的和親對象是個殘疾皇子秋度,可洞房花燭夜當晚...
    茶點故事閱讀 44,611評論 2 353

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