문제

음성 레코더는 압축되지 않은 선형 PCM 오디오가 필요하지 않습니다. 압축 AMR 잘할 것입니다. 오디오 녹음을 위해 구축 된 iPhone 프레임 워크는 충분히 간단하지만 Apple에서 온 오디오 형식 (Apple에서 온)을 설정하기 위해 찾은 유일한 예는 LineArpCM을 사용합니다. 나는 다양한 다른 값 조합을 시도했지만 아무것도 작동하지 않는 것 같습니다.

실제로 기록하는 코드가 있습니까? AMR?

편집하다: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 지원되는 인코딩 형식은 다음과 같습니다.

  • 알락 (Apple Lossless) ~> Kaudioformatapplelossless
  • ILBC (인터넷 낮은 비트 전송률 코덱, 음성) ~> kaudioformatilbc
  • IMA/ADPCM (ima4) ~> Kaudioformatappleima4
  • 선형 PCM ~> Kaudioformatlinearpcm
  • µ-law ~> Kaudioformatulaw
  • ~> Kaudioformatalaw

이 형식 중 하나를 시도하거나 오픈 소스 AMR 인코더를 사용할 수 있습니다. 황금 제안.

편집하다: 공식 API 링크를 업데이트했습니다

다른 팁

Olegueret의 공식 문서 링크를 업데이트하려면 (왜이 물건을 숨기는가?)

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

AMR Codec 형식은 iPhone Voice Recorder 앱을 지원하지 않는다고 생각합니다.

일부 오픈 소스, AMR 인코더 구현을 사과의 iPhone 응용 프로그램 프레임 워크에 통합하고 Voice Recorder를 AMR 인코딩 형식으로 저장할 수 있습니다. (NDA/라이센스로 Apple이 허용하는지 모르겠습니다).

-기원 후

압축 된 선형 PCM 버퍼 (원형 또는 링)에 오디오를 녹음하고 다른 스레드에서는 압축 오디오 데이터를 파일에 저장하기 전에 자체 AMR (또는 기타) 압축 엔진을 사용 하여이 버퍼의 데이터를 변환 할 수 있습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top