AVAudioPlayer 无法播放使用 ExtAudioFileWriteAsync 编写的音频 (.wav) 文件

Posted

技术标签:

【中文标题】AVAudioPlayer 无法播放使用 ExtAudioFileWriteAsync 编写的音频 (.wav) 文件【英文标题】:AVAudioPlayer cannot play Audio (.wav) file written using ExtAudioFileWriteAsync 【发布时间】:2017-03-12 18:51:24 【问题描述】:

我使用 ExtAudioFileWriteAsync 将使用 RemoteIO 录制的音频写入 .wav 文件。 AVAudioPlayer 没有播放保存的音频文件。音频文件只能在 VLC 媒体播放器上播放,而不能在 QuickTime 或任何其他媒体播放器上播放。

var player = AVAudioPlayer(contentsOf: audioFileURL)
player.play()

音频文件的一些基本细节:

请提出解决方案。

【问题讨论】:

【参考方案1】:

浪费了 2 天后,我发现问题在于没有使用 ExtAudioFileDispose 调用刷新音频数据。由于未刷新最终音频数据,因此 wav 文件不完整且已损坏。它仅在 VLC 播放器中播放,在任何其他播放器中均未播放。使用 ExtAudioFileDispose 后,音频也可以与 AVAudioPlayer 一起播放。

result = ExtAudioFileDispose(self.extAudioFileRef!)

【讨论】:

以上是关于AVAudioPlayer 无法播放使用 ExtAudioFileWriteAsync 编写的音频 (.wav) 文件的主要内容,如果未能解决你的问题,请参考以下文章

AVAudioPlayer 在播放视频时无法识别设备静音按钮

离开视图后无法使用 AVAudioPlayer 播放 AVAudioRecorder

无法在 swift 4 中使用 avaudioplayer 播放 http 音频

Mac 上的 AVAudioPlayer 无法播放/崩溃

AVAudioPlayer 无法播放 MP3 文件

使用 AVAudioPlayer iOS 9 无法在后台播放音频