需求:
蘋(píng)果端,需要在播放音頻時(shí)(無(wú)論是前臺(tái)還是后臺(tái)),來(lái)了電話(huà),暫停音頻,電話(huà)掛斷以后,音頻繼續(xù)播放。
實(shí)現(xiàn):(在delegate.m中)
在didFinishLaunchingWithOptions方法中寫(xiě)如下語(yǔ)句
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
AudioSessionInitialize(NULL, NULL, interruptionListenner, (__bridge void*)self);
…………………………
}
然后在delegate.m中添加如下方法
void interruptionListenner(void* inClientData, UInt32 inInterruptionState)
{
NewsDetailController *newsDetailVC = [NewsDetailController sharedMp3Player];
AppDelegate* pTHIS = (__bridge AppDelegate*)inClientData;
if (pTHIS) {
NSLog(@"interruptionListenner %u", (unsigned int)inInterruptionState);
if (kAudioSessionBeginInterruption == inInterruptionState) {//來(lái)電話(huà)了(按照個(gè)人音頻需求進(jìn)行處理,我的是暫停播放)
NSLog(@"Begin interruption");
if ([newsDetailVC isPlaying]) {//如果當(dāng)前mp3處于播放狀態(tài)
[newsDetailVC playButtonPressed:newsDetailVC.playBtn];//暫停播放
}
}
else {//掛了電話(huà)(按照個(gè)人音頻需求進(jìn)行處理,我的是繼續(xù)播放)
NSLog(@"Begin end interruption");
if (![newsDetailVC isPlaying]) {//如果當(dāng)前mp3處于暫停狀態(tài)
[newsDetailVC playButtonPressed:newsDetailVC.playBtn];//繼續(xù)播放
}
NSLog(@"End end interruption");
}
}
}
在此記錄,以便以后查看,也可讓更多需要此需求的人得到解答。
——凡幾多