ios - 我一进入我的应用程序,音乐播放器就停止了

ios - music player stops as soon as I enter my app

我的任务是找出此应用停止我 ipod 上的音乐播放器的原因。目前,在 XCode 中,我在 main() 的第一行设置了断点,但当我到达该行时,音乐播放器已经停止。

我可以想象任何静态构造函数都已经 运行,但我已经搜索了明显的罪魁祸首(任何提及 AVAudioSession),但没有发现 运行 ] 在 main().

之前

由于代码库非常庞大,盲目地搜索每个文件中的每个构造函数,而不知道我在寻找什么,这将是一件痛苦的事情。 你能告诉我是否有任何类型的 XCode 项目 属性 可以阻止外部音频播放,或者我可以寻找的任何东西吗? 谢谢

编辑:我已经缩小了很多范围。 首先,出于某种原因,XCode 似乎忽略了我的大部分断点,这完全误导了我。 确实是一个对象的静态初始化,最终导致了这个调用:

newDevice = alcOpenDevice(NULL);

出于某种原因,我实际上可以在这里获得一个断点。去搞清楚... 所以,我在这条线上播放音乐,但在 运行 之后就没有了。出于某种原因,设备的 openal 初始化似乎关闭了所有外部音乐...试图了解原因,以及如何规避它...

查看 AVAudioSession's Categories 的文档,听起来您的应用程序有一个不可混合的 AVAudioSessionCategory,如果将其更改为 AVAudioSessionCategoryAmbient 可以重现吗?

您是否尝试过通过 AppDelegate 将音乐设置为加载时播放?

尝试让它在用户加载回应用程序时继续播放音乐。

好的,我发现问题了。出于某种原因,XCode 没有提供帮助。所以我到处都设置了很多断点,看看在进入 main 之前 运行 会发生什么。这是 XCode 让我失败的地方,因为我知道代码是 运行ning,但由于某种原因,断点没有被触发。另外,出于某种原因,其他人也这样做了,所以我仍然有那个特殊的谜团需要解决。

除此之外,问题是在使用 AVAudioSessionCategoryAmbient 配置 AVAudioSession 之前初始化 OpenAL。将这两个调换后,一切正常。

谢谢大家的帮助!