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