Я пытаюсь воспроизвести звук с помощью AVAudioEngine и AVAudioPlayerNode. Однако в "engine.connect ..." я получаю следующее:
"PlaySound [21867: 535102] [AudioHAL_Client] AudioHardware.cpp: 666: AudioObjectGetPropertyData: AudioObjectGetPropertyData: нет объекта с данным идентификатором 0"
Код после "engine.connect ..." кажется запущенным, потому что он печатает "buffer? .Format", но звука нет.
Может ли кто-нибудь сообщить мне, что мне не хватает? Вот мой тестовый код.
let audioNode = AVAudioPlayerNode()
let path = Bundle.main.path(forResource: "Sounds/Test.mp3", ofType: nil)
let url = URL(fileURLWithPath: path!)
let file = try! AVAudioFile(forReading: url)
let buffer = AVAudioPCMBuffer(pcmFormat: file.processingFormat, frameCapacity: AVAudioFrameCount(file.length))
try! file.read(into:buffer!)
let engine = AVAudioEngine()
engine.attach(audioNode)
engine.connect(audioNode, to: engine.mainMixerNode, format: buffer?.format)
// PlaySound[21867:535102] [AudioHAL_Client] AudioHardware.cpp:666:AudioObjectGetPropertyData: AudioObjectGetPropertyData: no object with given ID 0
engine.prepare()
try! engine.start()
audioNode.play()
audioNode.scheduleBuffer(buffer!, at: nil, options: .loops, completionHandler: nil)
debugPrint(buffer?.format)
// Optional(<AVAudioFormat 0x60000212d1d0: 1 ch, 44100 Hz, Float32>)
В engine.connect () я также попробовал engine.outputNode.outputFormat (forBus: 0) вместо buffer? .Format. Мне не повезло.