【问题标题】:how can i play pcm with AVPlayer我如何用 AVPlayer 玩 pcm
【发布时间】:2012-11-08 07:11:51
【问题描述】:

我正在使用 AVPlayer 从服务器播放本地 .mp3 文件和音频流。 我也想播放本地 .pcm 文件。

NSArray *paths=NSSearchPathForDirectoriesInDomains(NSDocumentDirectory
                                                   , NSUserDomainMask 
                                                   , YES); 
NSString * voiceFile = [[paths objectAtIndex:0] stringByAppendingPathComponent:@"OutPut.pcm"]; 

但它没有用。我遇到了未知错误。

看来AudioQueue可以正确播放.pcm了。

但是有没有一种示例方法可以让 AVPlayer 像 .mp3 一样直接播放 .pcm?

【问题讨论】:

    标签: iphone objective-c ios avplayer pcm


    【解决方案1】:

    .pcm 作为文件扩展名或 PCM 数据均未指定可读格式。播放器无法识别任意数据流。它当然能够读取包含 PCM 数据的文件格式,但是这种 PCM 表示缺少典型的音频文件格式所表示的几个方面:

    • 采样率
    • 样本大小
    • 示例格式
    • 频道数

    等等。

    您应该将 PCM 数据保存为播放器支持的音频文件格式(例如 WAV 文件)。

    如果您更喜欢简单地流式传输 PCM 音频信息并且您知道流格式,则可以使用 AudioQueue 解决该问题。

    【讨论】:

    • 感谢 TTS sdk 创建的 .pcm。这是否意味着我必须先将 pcm 转换为音频文件?
    • @icefox 不客气。我刚刚添加了一个关于 AudioQueue 的注释。
    • 有没有关于如何将 wav 信息头添加到 pcm 的演示或文档?
    • @icefox 如果您已经熟悉大块文件格式,那么您可以轻松附加两个数据块(标题、pcm 数据)并进行一些调整以指定格式和大小。如果没有,请使用ExtAudioFile。将ExtAudioFileWrite 放到 Xcode 文档中,您将找到 14 个示例程序。
    猜你喜欢
    • 1970-01-01
    • 2015-03-15
    • 1970-01-01
    • 2011-10-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多