Iphone 如何使用AVPlayer播放pcm

Iphone 如何使用AVPlayer播放pcm,iphone,objective-c,ios,avplayer,pcm,Iphone,Objective C,Ios,Avplayer,Pcm,我正在使用AVPlayer播放本地.mp3文件和来自服务器的音频流。 我也想播放本地.pcm文件 NSArray *paths=NSSearchPathForDirectoriesInDomains(NSDocumentDirectory , NSUserDomainMask , YES);

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

NSArray *paths=NSSearchPathForDirectoriesInDomains(NSDocumentDirectory
                                                   , NSUserDomainMask 
                                                   , YES); 
NSString * voiceFile = [[paths objectAtIndex:0] stringByAppendingPathComponent:@"OutPut.pcm"]; 
但它不起作用。我犯了一个未知的错误

似乎AudioQueue可以正确播放.pcm


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

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

  • 采样率
  • 样本量
  • 样本格式
  • 通道计数
等等

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


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

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

  • 采样率
  • 样本量
  • 样本格式
  • 通道计数
等等

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


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

谢谢。由TTS sdk创建的PCM。这是否意味着我必须先将pcm转换为音频文件?@icefox不客气。我刚刚添加了一个关于AudioQueue的说明。是否有关于如何将wav信息头添加到pcm的演示或文档?@icefox如果您已经熟悉大块文件格式,那么您可以轻松地添加两个数据块(头、pcm数据),并进行一些调整以指定格式和大小。如果没有,只需使用
ExtAudioFile
。将
ExtAudioFileWrite
放到Xcode文档中,您将发现14个示例程序。谢谢。由TTS sdk创建的pcm。这是否意味着我必须先将pcm转换为音频文件?@icefox不客气。我刚刚添加了一个关于AudioQueue的说明。是否有关于如何将wav信息头添加到pcm的演示或文档?@icefox如果您已经熟悉大块文件格式,那么您可以轻松地添加两个数据块(头、pcm数据),并进行一些调整以指定格式和大小。如果没有,只需使用
ExtAudioFile
。将
ExtAudioFileWrite
放到Xcode文档中,您将发现14个示例程序。