標籤:des blog http os io 使用 ar 檔案 2014
首先,在info.plist裡申明需要在背景播放音頻內容:
添加key UIBackgroundModes
Tips:UIBackgroundModes audio鍵 同時還能讓app使用AirPlay播放流媒體
除此之外還需要在工程中設定對AVAudioSession 進行設定:
AVAudioSession *audioSession = [AVAudioSession sharedInstance]; NSError *setCategoryError = nil;BOOL success = [audioSession setCategory:AVAudioSessionCategoryPlayback error:&setCategoryError];if (!success) { /* handle the error condition */ } NSError *activationError = nil;success = [audioSession setActive:YES error:&activationError];if (!success) { /* handle the error condition */ }
AVAudioSession的預設類別為AVAudioSessionCategorySoloAmbient,需要將其類別設定為AVAudioSessionCategoryPlayback才可以在螢幕鎖定或者靜音狀態播放音頻
AVAudioSession的可以設定的種類如下:AVAudioSessionCategoryAmbient: 後台播放類型,會和其它音樂混合的音訊類型 AVAudioSessionCategorySoloAmbient: 後台播放類型,其它音樂會停止播放 AVAudioSessionCategoryPlayback: 播放音樂檔案AVAudioSessionCategoryRecord : 錄音時使用AVAudioSessionCategoryPlayAndRecord: 錄音並需要播放時使用AVAudioSessionCategoryAudioProcessing:編碼解碼時or 不播放音頻 or 未錄音時使用AVAudioSessionCategoryMultiRoute: 同時可以有多種輸入或輸出,例如:usb和耳機同時輸出,但並非所有輸入輸出方式均支援
輸入方式僅包括:AVAudioSessionPortUSBAudio AVAudioSessionPortHeadsetMic AVAudioSessionPortBuiltInMic 輸出僅包括:AVAudioSessionPortUSBAudio AVAudioSessionPortLineOut AVAudioSessionPortHeadphones AVAudioSessionPortHDMI AVAudioSessionPortBuiltInSpeaker
iOS 後台播放音頻檔案