1
私は、歌った16ビットストリームデータに対してAVAudioEngineで再生しようとしています。関数に接続するAVAudioFormatを設定するとクラッシュする
しかし、AVAudioFormat接続関数に渡すと常にクラッシュします。以下のような
コード:!の
let AUDIO_OUTPUT_SAMPLE_RATE = 44100
let AUDIO_OUTPUT_CHANNELS = 2
let AUDIO_OUTPUT_BITS = 16
var audioEngine: AVAudioEngine?
var audioPlayer: AVAudioPlayerNode?
...
audioEngine = AVAudioEngine()
audioPlayer = AVAudioPlayerNode()
audioEngine?.attach(audioPlayer!)
let mixer = audioEngine?.mainMixerNode
mixer!.outputVolume = 1.0
let stereoFormat = AVAudioFormat(commonFormat: .pcmFormatInt16, sampleRate: Double(AUDIO_OUTPUT_SAMPLE_RATE), channels: 2, interleaved: false)
audioEngine!.connect(audioPlayer!, to: mixer!, format: stereoFormat)
...
audioEngine .connect(...)私はXcodeの8ベータ6、OS Xエルキャピタンを使用しています、そして、この出来事が起こりライン
をクラッシュされますシミュレータとデバイスの両方から。
これは、クラッシュ・メッセージの一部です:
ERROR: >avae> AVAudioNode.mm:751: AUSetFormat: error -10868
*** Terminating app due to uncaught exception 'com.apple.coreaudio.avfaudio', reason: 'error -10868'
...
3 AVFAudio 0x000000011e0a5630 _Z19AVAE_RaiseExceptionP8NSStringz + 176
4 AVFAudio 0x000000011e0f270d _ZN19AVAudioNodeImplBase11AUSetFormatEP28OpaqueAudioComponentInstancejjP13AVAudioFormat + 213
5 AVFAudio 0x000000011e0f2630 _ZN19AVAudioNodeImplBase15SetOutputFormatEmP13AVAudioFormat + 46
6 AVFAudio 0x000000011e0f9663 _ZN21AVAudioPlayerNodeImpl15SetOutputFormatEmP13AVAudioFormat + 25
7 AVFAudio 0x000000011e099cfd _ZN18AVAudioEngineGraph8_ConnectEP19AVAudioNodeImplBaseS1_jjP13AVAudioFormat + 2377
8 AVFAudio 0x000000011e09d15f _ZN18AVAudioEngineGraph7ConnectEP11AVAudioNodeS1_mmP13AVAudioFormat + 355
9 AVFAudio 0x000000011e0fc80e _ZN17AVAudioEngineImpl7ConnectEP11AVAudioNodeS1_mmP13AVAudioFormat + 348
それは、オーディオファイルからバッファとフォーマットで遊んで問題ありません。
私は何をしていますか?
ありがとうございました。
ありがとうございます。それは働いている。 –
私は同じ状況に遭遇し、それを修正するためにFloat32を使用しました。 outputNodeのデフォルトのAudioFormatも3つの異なるiODデバイスのFloat32であることに気付きました。これは、iOSデバイスがFloat32での再生のみをサポートしていることを意味しますか? –