代码之家  ›  专栏  ›  技术社区  ›  zaph

将caf格式的音频保存为wav格式

  •  1
  • zaph  · 技术社区  · 14 年前

    我以.caf格式录制音频,稍后需要将其转换为.wav格式才能将文件作为电子邮件附件发送。如何在iOS 3.1.x中将文件转换为wav格式?

    [NSNumber numberWithInt:kAudioFormatLinearPCM], AVFormatIDKey,
    [NSNumber numberWithFloat:11025.0f],            AVSampleRateKey,
    [NSNumber numberWithInt:1],                     AVNumberOfChannelsKey,
    [NSNumber numberWithInt:16],                    AVLinearPCMBitDepthKey,
    [NSNumber numberWithBool:YES],                  AVLinearPCMIsBigEndianKey,
    [NSNumber numberWithBool:NO],                   AVLinearPCMIsFloatKey,
    

    我没有绑定到这个格式,我只需要能够在设备上录制和播放,并通过电子邮件发送一个wav版本的文件。

    2 回复  |  直到 14 年前
        1
  •  4
  •   zaph    14 年前

    答案很简单,只需使用扩展名为.wav的init。

    从类引用文档中,记录器根据您选择的扩展名推断文件类型。所以试试。aiff或.aif或.wav

    initWithURL:设置:错误: 初始化并返回录音机。

    - (id)initWithURL:(NSURL *)url
    settings:(NSDictionary *)settings
    error:(NSError **)outError
    

    要记录到的文件系统位置。要记录的文件类型是根据此参数值中包含的文件扩展名推断出来的。

        2
  •  2
  •   Brad    14 年前

    坏消息:

    我认为在iPhone上没有任何“自动”的方法可以做到这一点,这意味着你必须自己手动完成。

    好的:

    做起来很简单。一个WAV文件-假设你只是在谈论使用原始的,未压缩的音频-只是一个头部,你需要坚持在音频数据的开头。格式很简单。网上有很多参考资料:

    http://www.sonicspot.com/guide/wavefiles.html

    我不是你说的那种法米利尔格式的。如果是未压缩的,很好。否则,您可能需要解压缩它。WAV文件也有存储方法 压缩的 如果数据源是压缩的,那么 可以 通过生成新的头并指示它已按原样压缩,可以将其存储在WAV中。

    另外,我说的“压缩”是指除了标准的X位Y通道PCM之外的任何编解码器。