【问题标题】:Playback buffer of audio values - iOS音频值的播放缓冲区 - iOS
【发布时间】:2012-04-02 08:35:42
【问题描述】:

我正在尝试播放我在 Objective-C 中创建的示例音频值的 NSArray。我已经毫无问题地生成了这些值,但是如何通过 iPhone 回放它们呢?

谢谢

【问题讨论】:

    标签: objective-c ios core-audio


    【解决方案1】:

    我建议将 NSArray 转换为 NSData 对象,然后使用 AVAudioPlayer 方法 initWithData:error: (see here) 加载为可播放的音频。 AVAudioPlayer 的优点是相对于 Audio Queue 和 Audio Unit 方法使用起来非常简单。

    如何将 NSArray 转换为 NSData 取决于您的样本类型(this SO post 可能会告诉您如何做到这一点,尽管 NSKeyedArchiver 归档过程可能会影响您的样本)。我建议,如果您的示例生成过程允许,只需将您的示例创建为 NSData 对象并跳过此类转换。

    【讨论】:

      【解决方案2】:

      将 NSArray 中的值复制到适当缩放的 PCM 样本的 C 数组中。然后,您可以通过添加 RIFF 标头将此数组转换为 WAV 文件并使用 AVAudioPlayer 播放此文件,或者您可以直接将 PCM 样本输入音频队列的 C 数组缓冲区或音频回调中的 RemoteIO 音频单元。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-10-31
        • 2017-12-15
        • 1970-01-01
        • 1970-01-01
        • 2014-07-09
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多