ios播放背景音乐时接入电话挂掉后恢复失败

  • Creator 版本: 2.4.3

  • 目标平台: ios原生平台

  • 重现方式:播放背景音乐时接电话

  • 首个报错:
    D/AudioEngine-inl.mm (142): AVAudioSessionInterruptionTypeBegan, application == UIApplicationStateActive, pauseOnResignActive = true
    2021-01-11 15:01:14.586358+0800 human-mobile[44116:7078225] QKLog:defaultInstance
    2021-01-11 15:01:14.586510+0800 human-mobile[44116:7078225] QKLog:-[SMPCQuickSDK(Extend) applicationWillResignActive:]
    D/AudioEngine-inl.mm (172): UIApplicationWillResignActiveNotification
    D/AudioEngine-inl.mm (176): UIApplicationWillResignActiveNotification, alcMakeContextCurrent(nullptr)
    D/AudioEngine-inl.mm (165): AVAudioSessionInterruptionTypeEnded, application != UIApplicationStateActive, resumeOnBecomingActive = true
    2021-01-11 15:01:18.310045+0800 human-mobile[44116:7078225] QKLog:defaultInstance
    2021-01-11 15:01:18.310181+0800 human-mobile[44116:7078225] QKLog:-[SMPCQuickSDK(Extend) application:supportedInterfaceOrientationsForWindow:]
    2021-01-11 15:01:18.310325+0800 human-mobile[44116:7078225] QKLog:defaultInstance
    2021-01-11 15:01:18.310388+0800 human-mobile[44116:7078225] QKLog:-[SMPCQuickSDK(Extend) application:supportedInterfaceOrientationsForWindow:]
    2021-01-11 15:01:18.311030+0800 human-mobile[44116:7078225] QKLog:defaultInstance
    2021-01-11 15:01:18.311146+0800 human-mobile[44116:7078225] QKLog:-[SMPCQuickSDK(Extend) application:supportedInterfaceOrientationsForWindow:]
    2021-01-11 15:01:18.311289+0800 human-mobile[44116:7078225] QKLog:defaultInstance
    2021-01-11 15:01:18.311365+0800 human-mobile[44116:7078225] QKLog:-[SMPCQuickSDK(Extend) application:supportedInterfaceOrientationsForWindow:]
    E/AudioEngine-inl.mm (557): bool cocos2d::AudioEngineImpl::resume(int): audio id = 2, error = a003
    E/AudioEngine-inl.mm (557): bool cocos2d::AudioEngineImpl::resume(int): audio id = 2, error = a003
    2021-01-11 15:01:18.311837+0800 human-mobile[44116:7078225] QKLog:defaultInstance
    2021-01-11 15:01:18.311939+0800 human-mobile[44116:7078225] QKLog:-[SMPCQuickSDK(Extend) applicationDidBecomeActive:]
    D/AudioEngine-inl.mm (182): UIApplicationDidBecomeActiveNotification
    D/AudioEngine-inl.mm (186): UIApplicationDidBecomeActiveNotification, alcMakeContextCurrent(s_ALContext)

  • 之前哪个版本是正常的:

  • 手机型号: iphone x

  • 手机浏览器:

  • 编辑器操作系统: ios13.7

  • 重现概率: 必现

看日志发现是因为在暂停时先进入了一个判断条件导致清空了context


然后恢复时先去调用系统api去播放音效再去创建的context导致播放出错


知道问题后就在业务层处理了,监听系统从后台返回,然后延时去恢复背景音乐就行了。记得把音乐的状态先标记成暂定。

ios14的系统
如果游戏是打开的状态
然后来电话
会是一个小窗提示的
然后用那个小窗接电话,之后在挂掉
是监听不到 从后台返回的。。。
游戏也可能会卡住。。。

楼主遇到过没?

1赞

暂时没遇到过,看下你们引擎的[AVAudioSession sharedInstance] setCategory 是不是AVAudioSessionCategorySoloAmbient。这个模式下好像就会导致进后台和回前台不匹配,使用AVAudioSessionCategoryAmbient试试

收购德州源码 单款德州即可gx
要求:
带h5版本 后台带代理系统 类似wepoker 或者功夫扑克 (kungfu.poker)
有俱乐部+开房+控制+运营级最好+Q1157000460 带上演示站 测试账号联系

该主题在最后一个回复创建后14天后自动关闭。不再允许新的回复。