【问题标题】:AVAudioPlayer- play from sound bufferAVAudioPlayer- 从声音缓冲区播放
【发布时间】:2015-08-26 08:23:42
【问题描述】:

我一直在研究使用 AVAudioPlayer 播放声音。这里的问题是格式 - 我在缓冲区中有一堆 WAV 样本,但根本没有 WAV 标头。 AVAudioPlayer 似乎不允许您只设置格式,它必须尝试从 NSData 缓冲区中解释它。在开始播放之前必须复制整个声音对我的用户来说并不是一个好的体验。

如果我有一个 WAV 样本缓冲区(不是内存中的 WAV 文件),我如何使用 AVAudioPlayer 播放它而不用巨大的副本削弱我的性能?

【问题讨论】:

    标签: ios swift audio


    【解决方案1】:

    不要复制整个(巨大的)声音,只需在现有缓冲区的第一个样本前面复制一个 WAV 文件头即可。最初将波形数据获取到内存中(文件加载、下载或合成等)时,请确保前面至少有 44 个字节的填充,以便有空间复制标头。如果是缓冲区 sn-p ,保存一点数据,把WAV头复制进去,播放声音,然后恢复原来的44字节。

    【讨论】:

      猜你喜欢
      • 2013-11-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-10-31
      • 1970-01-01
      • 2015-12-22
      • 1970-01-01
      • 2017-12-15
      相关资源
      最近更新 更多