鎖屏或按Home鍵後繼續播放音樂

來源:互聯網
上載者:User

參考:
[1]http://www.apple.com.cn/developer/iphone/library/documentation/iPhone/Conceptual/iPhoneOSProgrammingGuide/AudioandVideoTechnologies/AudioandVideoTechnologies.html#//apple_ref/doc/uid/TP40007072-CH19-SW34

[2]http://www.cocoachina.com/bbs/read.php?tid-26984.html

[3]http://diwublog.com/archives/89

一般聽音樂的app在鎖屏狀態和按home鍵後都能繼續播放音樂,有些強大的甚至在來簡訊後能夠繼續播放,不被中斷,比如:百度ting。本文主要介紹鎖屏和按home鍵後仍播放音樂實現。
主要依靠“音頻會話”(AVAudioSession)來實現。詳細關於AVAudioSession的介紹見參考一。
它可以處理
1)您的音頻在Ring/Silent切換過程中是否變為無聲
2)在螢幕鎖定狀態時您的音頻是否停止
3)當您的音頻開始播放時,iPod音頻是繼續播放,還是變為無聲
更大的音頻上下文包括使用者所做的改變,比如使用者插入耳機,處理Clock和Calendar這樣的警告事件,或者處理呼入的電話。通過音頻會話,您可以對這樣的事件做出恰當的響應。
1.鎖屏後仍能繼續播放音樂,則只要將下面的程式碼封裝含到應用程式中即可

[[AVAudioSession sharedInstance] setCategory: AVAudioSessionCategoryPlayback error: nil];[[AVAudioSession sharedInstance] setActive: YES error: nil];

設定了AVAudioSessionCategoryPlayback,表示對於使用者切換靜音或者鎖屏 都不理睬,繼續播放音樂。並且不播放來自其他app的音樂,當然你可以設定kAudioSessionProperty_OverrideCategoryMixWithOthers  來實現與其他app的音樂混合。
除AVAudioSessionCategoryPlayback外,還有以下其他category。

NSString *const AVAudioSessionCategoryAmbient;NSString *const AVAudioSessionCategorySoloAmbient;NSString *const AVAudioSessionCategoryPlayback;NSString *const AVAudioSessionCategoryRecord;NSString *const AVAudioSessionCategoryPlayAndRecord;NSString *const AVAudioSessionCategoryAudioProcessing;

AVAudioSessionCategoryAmbient靜音或者鎖屏下不再播放音樂,和其他app聲音混合。
AVAudioSessionCategorySoloAmbient預設模式,靜音或者鎖屏下不再播放音樂,不和其他app聲音混合。
AVAudioSessionCategoryRecord不播放音樂,鎖屏狀態繼續錄音
AVAudioSessionCategoryPlayAndRecord 播放音樂,並錄音
2.按home鍵後仍能播放
plist 新增Required  background modes ,內容設定為App plays audio,如所示。

注意這個在simulator上是沒有效果的,但在真機上可以work。

另外,看到有人說home情況下,播放完一首歌會暫停,不再繼續播放。很挫的方法是用另外一個audioplay播放無聲的聲音,那麼
當你播放完一首歌的時候系統就不會將你的app suspend掉,這樣你可以切換到下一首繼續播放。
也許有更好的方法,這個只是mark一下。

其實這樣就相當於一個後台,要是能把app的icon隱藏掉那就是一個後台,一個偽後台,在蘋果不支援背景時候也許這也算個方法,不過肯定比較費電。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.