你好,歡迎來到IOS教程網

 Ios教程網 >> IOS編程開發 >> IOS開發基礎 >> 使用 AVAudioSession 實現後台播放音樂

使用 AVAudioSession 實現後台播放音樂

編輯:IOS開發基礎

作者: 清澈Saup

6450471_135922295190_2.jpg

1. 前言  

  • AVAudioSession是一個單例,無需實例化即可直接使用。AVAudioSession在各種音頻環境中起著非常重要的作用

  • 針對不同的音頻應用場景,需要設置不同的音頻會話分類

1.1 ?AVAudioSession的類別  

  • AVAudioSessionCategoryAmbient

    –混音播放,例如雨聲、汽車引擎等,可與其他音樂一起播放

  • AVAudioSessionCategorySoloAmbient

    –後台播放,其他音樂將被停止

  • AVAudioSessionCategoryPlayback

    –獨占音樂播放

  • AVAudioSessionCategoryRecord

    –錄制音頻

  • AVAudioSessionCategoryPlayAndRecord

    –播放和錄制音頻

  • AVAudioSessionCategoryAudioProcessing

    –使用硬件解碼器處理音頻,該音頻會話使用期間,不能播放或錄音

圖解:

1.jpg

2. 後台播放音樂  

2.1 ?設置後台任務  

+?(UIBackgroundTaskIdentifier)backgroundPlayerID:(UIBackgroundTaskIdentifier)backTaskId
{
????//?1.?設置並激活音頻會話類別
???????AVAudioSession?*session?=?[AVAudioSession?sharedInstance];
????[session?AVAudioSessionCategoryPlayback?error:nil];
????[session?setActive:YES?error:nil];
????//?2.?允許應用程序接收遠程控制
????[[UIApplication?sharedApplication]?beginReceivingRemoteControlEvents];
????//?3.?設置後台任務ID
??????UIBackgroundTaskIdentifier?newTaskId?=?UIBackgroundTaskInvalid;
????newTaskId?=?[[UIApplication?sharedApplication]?beginBackgroundTaskWithExpirationHandler:nil];
????if?(newTaskId?!=?UIBackgroundTaskInvalid?&&?backTaskId?!=?UIBackgroundTaskInvalid)?{
????????[[UIApplication?sharedApplication]?endBackgroundTask:backTaskId];
????}
????return?newTaskId;
}

2.2 ?設置後台播放  

//後台播放音頻設置?
AVAudioSession?*session?=?[AVAudioSession?sharedInstance];???
[session?setActive:YES?error:nil];???
[session?setCategory:AVAudioSessionCategoryPlayback?error:nil];??
???
//讓app支持接受遠程控制事件?
[[UIApplication?sharedApplication]?beginReceivingRemoteControlEvents];

2.3 ?記錄後台播放代號  

//?後台播放任務Id
UIBackgroundTaskIdentifier??_bgTaskId;
?
//?設置音頻會話,允許後台播放
_bgTaskId?=?[SoundTool?backgroundPlayerID:_bgTaskId];
  1. 上一頁:
  2. 下一頁:
蘋果刷機越獄教程| IOS教程問題解答| IOS技巧綜合| IOS7技巧| IOS8教程
Copyright © Ios教程網 All Rights Reserved