【发布时间】:2019-08-30 04:15:14
【问题描述】:
去年我一直在使用 AudioKit-4.0.4 开发 iOS 应用程序。现在我的应用程序可以运行了,我认为是时候将我的 AudioKit 库更新到新版本了。
我已经下载了 AudioKit-4.6,只是将我的 XCode 项目中旧的“AudioKit For iOS.xcodeproj”换成了新版本。一切都构建得很好,除了 AudioKit.start() 现在必须用“try”包装。无需进行其他更改即可成功构建。
但是现在我的应用程序没有发出任何声音。
这是我启动 AudioKit 的代码:
AKSettings.audioInputEnabled = true
mix = AKMixer()
AKSettings.playbackWhileMuted = true
AudioKit.output = mix
do {
try AudioKit.start()
print("----- AudioKit Started -----")
} catch {
print("Error AudioKit.start")
}
do {
try AKSettings.setSession(category: AKSettings.SessionCategory.playback, with: AVAudioSession.CategoryOptions.mixWithOthers)
} catch {
print("Error setSession mixWithOthers")
}
除了没有音频之外,我还在控制台日志中看到这些重复的消息:
----- AudioKit Started -----
2019-04-08 15:03:45.709359-0700 HarmonicChimes[2708:2212995] [avas] AVAudioSessionPortImpl.mm:56:ValidateRequiredFields: Unknown selected data source for Port Speaker (type: Speaker)
2019-04-08 15:03:45.711236-0700 HarmonicChimes[2708:2212995] [avas] AVAudioSessionPortImpl.mm:56:ValidateRequiredFields: Unknown selected data source for Port Speaker (type: Speaker)
这些 AV 消息显示在我的 iOS 12 设备上,而不是 iOS 11 和更早版本。网上的一些谷歌搜索表明这些 AV 消息是 Apple 的问题,而不是 AudioKit,但我在运行 AudioKit 4.0.4 时没有看到它们。
没有声音的问题是一个表演障碍!我搜索了“AudioKit 没有声音”,但没有找到任何有意义的内容。
看来4.6不仅仅是4.0的简单插件替代品?是否有新的 AudioKit api 来启动声音?我的应用的 plist 和功能设置为允许后台操作,这可能与此有关吗?
(我使用的是 XCode 10.1、macOS 10.13.6 和 iOS 12。)
【问题讨论】:
-
我现在有一个简化的 iOS 演示应用程序来演示这个问题。当使用 AudioKit 4.0.4 编译时,它按预期工作。使用 AudioKit 4.6 构建时,它无法产生声音。我要在这里附上这两个 Xcode 项目吗?
-
那太好了@WholeCheese
-
有没有办法将文件附加到 StackOverflow 中的线程?无论如何,我已将“PlayTone-4.0.4.zip”上传到我的网页。在 AK4.0.4 下运行良好。换成AK4.6你会看到(听不到)没有声音的问题:wholecheese.com/demos
-
哦,是的,我已经构建了一些 AK4.6 示例应用程序,它们确实对我有用。这表明我在 4.0.4 中正在做的事情在 4.6 中不再受支持。请注意,我在 PlayTone 演示中所做的是基于我从 4.0 中提供的示例中学到的知识。
-
@AureliusProchazka 你有机会看看这个吗?在解决此问题之前,我基本上坚持使用 AK 4.0.4。我非常希望更新到 AK 4.6,尤其是因为我现在也在尝试将 Audiobus 集成到我的应用程序中。