iOS播放音频时来电打断播放,挂电话继续播放处理方法总结

2017-03-17  本文已影响369人  凡几多

需求:

苹果端,需要在播放音频时(无论是前台还是后台),来了电话,暂停音频,电话挂断以后,音频继续播放。

实现:(在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");
        }
        
    }
}

在此记录,以便以后查看,也可让更多需要此需求的人得到解答。
——凡几多

上一篇下一篇

猜你喜欢

热点阅读