一个录音机并不需要压缩的线性PCM声音。压缩的 AMR 会做得很好。IPhone框架,建立录音很简单,但是唯一的实例,我已经找到了设置的音频格式(其中来自苹果)使用的对象.我已经尝试了其他各种组合的价值,但是似乎无法得到任何工作。

没有任何人有任何代码实际上记录 AMR?

编辑: 年度部长级审查格式是一个选项,用于设置的数据类型,但其他选项(包的尺寸,框架大小等)。 似乎并不匹配无论我怎么集他们。

编辑: 这里就是我的PCM版本:

/*
 If we want to use AMR instead of PCM:
 AMR Format:
 Sampling Frequency: 8 kHz/13-bit (160 samples for 20 ms frames), filtered to 200-3400 Hz
 eight source codecs :  12.2, 1.2, 7.95, 7.40, 6.70, 5.90, 5.15, 4.75 kbit/s
 generated frame length: 244, 204,  159,  148,  134,  118,  103,   95 bits per frame
 */
format->mFormatID = kAudioFormatLinearPCM;
format->mSampleRate = 8000.0;    //8 kHz
format->mFramesPerPacket = 1;    //1 frame per packet
format->mChannelsPerFrame = 1;    //Mono
format->mBytesPerFrame = 2;        //8/bits per frame (round up)
format->mBytesPerPacket = 2;    //Same as bytes per frame
format->mBitsPerChannel = 16;    //16-bit audio
format->mReserved = 0;            //always 0
format->mFormatFlags = kLinearPCMFormatFlagIsBigEndian |
                       kLinearPCMFormatFlagIsSignedInteger |
                       kLinearPCMFormatFlagIsPacked;
有帮助吗?

解决方案

AMR编不支持编码/记录在iPhone上,尽管它支持播放:这就是原因kAudioFormatAMR恒的存在。

官方api 说支持的编码格式:

  • ALAC (苹果无损)~>kAudioFormatAppleLossless
  • iLBC (互联网的低比特率编,对于语音)~>kAudioFormatiLBC
  • IMA/ADPCM (IMA4)~>kAudioFormatAppleIMA4
  • 线性PCM ~>kAudioFormatLinearPCM
  • µ法 ~>kAudioFormatULaw
  • 一个法律 ~>kAudioFormatALaw

你可以试试这些格式或使用开放源AMR编码器 goldenmean 建议。

编辑:最新的官方api链接

其他提示

更新olegueret的官方文档链接(为什么他们隐藏这些东西?)

http://developer.apple.com/library/ios /#qa/qa2008/qa1615.html

我猜我的iPhone录音笔应用程序不支持AMR编解码器格式。

可以尝试将一些开源的AMR编码器实现集成到苹果的iPhone应用程序框架中,并尝试使录音机以AMR编码格式存储音频。 (我不知道苹果是否允许他们使用NDA /许可证。)

-AD

您可以将音频录制到未压缩的线性PCM缓冲区(圆形或环形),并在另一个线程中,使用您自己的AMR(或其他)压缩引擎转换此缓冲区中的数据,然后将压缩的音频数据保存到文件。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top