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

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

作者: 凡几多 | 来源:发表于2017-03-17 15:27 被阅读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");
            }
            
        }
    }
    

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

    相关文章

      网友评论

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

          本文链接:https://www.haomeiwen.com/subject/rrmenttx.html