2011-03-10 3 views
1

저는 iPhone을 처음 사용합니다. Apple의 SpeakHere 응용 프로그램을 모노 형식으로 기록하도록 수정 해 주시기 바랍니다. mChannelsPerFrame에 대해 설정해야 할 항목과 설정해야 할 항목은 무엇입니까?iPhone에서 모노 형식으로 녹음하도록 SpeakHere 샘플 앱을 수정하려면 어떻게해야합니까?

linearPCM WAVE 형식의 레코드 일부가 이미 변경되었습니다.

여기는 link입니다. 여기

나는 그들이 나를 변경할 수 있습니다 생각하지만 난 꽤 소리에 이해가 안 :

void ChangeNumberChannels(UInt32 nChannels, bool interleaved) 
       // alter an existing format 
    { 
     Assert(IsPCM(), "ChangeNumberChannels only works for PCM formats"); 
     UInt32 wordSize = SampleWordSize(); // get this before changing ANYTHING 
     if (wordSize == 0) 
      wordSize = (mBitsPerChannel + 7)/8; 
     mChannelsPerFrame = nChannels; 
     mFramesPerPacket = 1; 
     if (interleaved) { 
      mBytesPerPacket = mBytesPerFrame = nChannels * wordSize; 
      mFormatFlags &= ~kAudioFormatFlagIsNonInterleaved; 
     } else { 
      mBytesPerPacket = mBytesPerFrame = wordSize; 
      mFormatFlags |= kAudioFormatFlagIsNonInterleaved; 
     } 
    } 
+0

오디오 대기열을 사용해야합니까? AVAudioRecorder 용 AVAudioFramework를 살펴 보셨습니까? – Viraj

답변

0

아이폰에 당신은 모노로 녹음 할 수 있습니다.

SpeakHere 예제에서 설정하려면 아무 것도 할 필요가 없습니다. 자동으로 완료됩니다. AQRecorder::SetupAudioFormat 예를 들어

지원 하드웨어 입력 채널을 취득하고 바르로서 설정
size = sizeof(mRecordFormat.mChannelsPerFrame); 
XThrowIfError(AudioSessionGetProperty( kAudioSessionProperty_CurrentHardwareInputNumberChannels, 
       &size, 
       &mRecordFormat.mChannelsPerFrame), "couldn't get input channel count"); 

. 다른 곳에서는 버퍼 크기 계산이 그 값을 감안합니다.

관련 문제