需求:
苹果端,需要在播放音频时(无论是前台还是后台),来了电话,暂停音频,电话挂断以后,音频继续播放。
实现:(在delegate.m中)
在didFinishLaunchingWithOptions方法中写如下语句
- (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) {//来电话了(按照个人音频需求进行处理,我的是暂停播放)
NSLog(@"Begin interruption");
if ([newsDetailVC isPlaying]) {//如果当前mp3处于播放状态
[newsDetailVC playButtonPressed:newsDetailVC.playBtn];//暂停播放
}
}
else {//挂了电话(按照个人音频需求进行处理,我的是继续播放)
NSLog(@"Begin end interruption");
if (![newsDetailVC isPlaying]) {//如果当前mp3处于暂停状态
[newsDetailVC playButtonPressed:newsDetailVC.playBtn];//继续播放
}
NSLog(@"End end interruption");
}
}
}
在此记录,以便以后查看,也可让更多需要此需求的人得到解答。
——凡几多