AVPlayer不会播放音频,尽管没有错误
问题描述:
在我的iOS应用程序中,我有一个自定义音频播放器类,它创建基于URL的音频资产的底层AVPlayer
。这一切都非常香草 - 根据URL加载AVPlayerItem
,异步加载资产数据,然后使用它创建AVPlayer
实例。AVPlayer不会播放音频,尽管没有错误
一切正常,但我刚刚发现AVPlayer加载音频资产并正确解析它的情况,但拒绝播放任何音频。
这发生在我启动应用程序之前开始几个游戏之前。例如。我的世界和纪念碑谷。没有防错的方法来重现这一点(有时候Minecraft会导致这个错误出现,有时候不会),但是如果我开始使用音频的几个游戏,这个错误最终会出现。
当我调试应用程序的当前状态时,AVPlayer
没有错误。状态已准备好播放等等。一切都看起来应该如此。 AVPlayerItem
也是如此。我无法让应用播放音频...
...除非我开始Spotify并播放歌曲。这可以修复任何可能存在的音频锁并导致我的播放器无法播放。如果我离开Spotify并打开我的应用,我的音频播放器现在可以播放音频。
任何想法可能导致此?我没有想法。
答
不知道它是否是答案,但您可能需要为您的音频设置AVSession。 AVSession info他们告诉手机,如果你的音频应该播放其他人,应该停止,如果一个电话出现或如果你去背景等
这是可能的一些应用程序正在改变音频会议,你是没有正确指定你的。
我用我的这个代码:
do {
try AVAudioSession.sharedInstance().setCategory(AVAudioSessionCategoryPlayback, with: AVAudioSessionCategoryOptions.interruptSpokenAudioAndMixWithOthers)
}
catch {
// report for an error }
这是为我工作的类别选项,但AVPlayer具有不同的,试一下,看看有没有什么帮助。
感谢您的答案和链接,伟大的建议!但是,我已经做了这些事情。 :/ –
对不起,我不能诚实地提供更多帮助,我也正在处理一堆AVPlayer奇怪的行为。如果我找到任何东西或想到一个想法,我会让你知道!祝你好运:) – baldemora
谢谢,真的很感激! :) –