【问题标题】:In iOS 15, 'throwing -10878' occurs many times when connecting AVAudioPlayerNode to mainMixerNode在 iOS 15 中,将 AVAudioPlayerNode 连接到 mainMixerNode 时多次出现“抛出 -10878”
【发布时间】:2021-11-23 15:08:07
【问题描述】:

我在 iOS 15 上执行以下代码时遇到问题。这在模拟器和真实设备上都会出现。此外,这不会在 iOS 14 上发生。

import AVFoundation

class MyAudio {
    let audioEngine: AVAudioEngine
    let audioFile: AVAudioFile
    let playerNode: AVAudioPlayerNode

    init() {
        audioFile = try! AVAudioFile(forReading: Bundle.main.url(forResource: "sound", withExtension: "mp3")!)
        audioEngine = AVAudioEngine()
        playerNode = AVAudioPlayerNode()
        audioEngine.attach(playerNode)
        audioEngine.connect(playerNode, to: audioEngine.mainMixerNode, format: audioFile.processingFormat)

        do {
            try audioEngine.start()
            playerNode.play()
        } catch {
            print(error.localizedDescription)
        }
    }
}

它将打印这些输出。

2021-10-02 17:29:14.534934+0900 audio-sample-2021-10-02[11337:353838] throwing -10878
2021-10-02 17:29:14.537588+0900 audio-sample-2021-10-02[11337:353838] throwing -10878
2021-10-02 17:29:14.537895+0900 audio-sample-2021-10-02[11337:353838] throwing -10878
2021-10-02 17:29:14.538194+0900 audio-sample-2021-10-02[11337:353838] throwing -10878
2021-10-02 17:29:14.538512+0900 audio-sample-2021-10-02[11337:353838] throwing -10878
2021-10-02 17:29:14.538822+0900 audio-sample-2021-10-02[11337:353838] throwing -10878
2021-10-02 17:29:14.539127+0900 audio-sample-2021-10-02[11337:353838] throwing -10878
2021-10-02 17:29:14.539434+0900 audio-sample-2021-10-02[11337:353838] throwing -10878
2021-10-02 17:29:14.539789+0900 audio-sample-2021-10-02[11337:353838] throwing -10878

虽然会发生这些错误,但可以播放声音而不会出现任何崩溃。但是,它比平时花费大量时间进行初始化。有什么办法可以解决这个问题吗?

【问题讨论】:

  • 自 iOS 15 以来,我的应用程序也存在此问题。似乎此错误是由 AUComponent 引发的,意思是“kAudioUnitErr_InvalidParameter”:johnnn.tech/q/… 我也没有初​​始崩溃但我的应用程序也使用了 RealityKit,然后抱怨基本上没有足够的性能让它正常运行,我认为这两个问题是相关的。非常令人沮丧,因为我对 iOS 14 没有任何问题……:/

标签: swift avfoundation ios15


【解决方案1】:

要解决此问题,请更改为:

audioEngine.connect(playerNode, to: audioEngine.outputNode, format: audioFile.processingFormat)

【讨论】:

  • 知道为什么会这样,更重要的是,如果你真的想将多个节点连接到混音器,你会怎么做?
猜你喜欢
  • 2017-11-29
  • 2021-11-11
  • 1970-01-01
  • 2018-08-29
  • 2016-04-12
  • 2022-11-22
  • 1970-01-01
  • 2011-12-25
  • 2020-10-30
相关资源
最近更新 更多