8000 hertz 샘플 속도가있는 오디오 단위를 사용하는 iOS 앱은 왜곡 된 음성을 반환합니다.

StackOverflow https://stackoverflow.com//questions/11690395

문제

이 문제에 대해서는 정말로 도움이 필요합니다.오디오 단위로 iOS 응용 프로그램을 개발하고, 기록 된 오디오는 AlAw 형식을 사용하여 8 비트 / 8000 Hertz 샘플 속도로 필요합니다.왜곡 된 목소리가 스피커를 나오는 방법.

나는이 샘플을 온라인에서 온다 :

http://www.stefanpopp.de/2011./ 캡처 - iPhone 마이크 / 코멘트 - Page-1 /

내 응용 프로그램을 디버깅하려고하면서 AudioFormat을 자신의 응용 프로그램에서 사용 했으므로 동일한 왜곡 된 사운드를 사용했습니다.나는 잘못된 설정을 가지고 있거나이를 작동시킬 수 있도록 다른 것을해야합니다.링크에 신청서와 아래의 AudioFormat 이후 뭔가 잘못되었거나 누락 된 것을하고 있는지 누군가가 말해 줄 수 있습니까?나는이 물건에 대해 많이 모른다, 고마워.

오디오 형식 :

AudioStreamBasicDescription audioFormat;
    audioFormat.mSampleRate         = 8000;
    audioFormat.mFormatID           = kAudioFormatALaw;
    audioFormat.mFormatFlags        = kAudioFormatFlagIsPacked | kAudioFormatFlagIsSignedInteger;
    audioFormat.mFramesPerPacket    = 1;
    audioFormat.mChannelsPerFrame   = 1;
    audioFormat.mBitsPerChannel     = 8;
    audioFormat.mBytesPerPacket     = 1;
    audioFormat.mBytesPerFrame      = 1;
.

도움이 되었습니까?

해결책

결국 올바르게 재생할 수 있습니다. 비슷한 문제에 직면 한 다른 사람을 돕기 위해 여기에 게시합니다.

주요 문제는 시뮬레이터와 실제 장치간에 엄청난 차이가 있다는 것입니다. 장치에서 앱 실행 음질은 더 좋았지 만 두 번째 또는 2마다 건너 뛰는 것으로 보관 되어이 문제를 해결하는 것과 버퍼 크기 / 지속 시간을 변경하는 설정을 찾았습니다. (기간 설정은 시뮬레이터에서 작동하지 않습니다. 내 문제 중 일부는 특정 속도로 실행되도록해야했습니다. 다른 것과 동기화 할 필요가있었습니다. 왜곡 된 소리가 발생했습니다.

status = AudioSessionInitialize(NULL, kCFRunLoopDefaultMode, NULL, audioUnit);
UInt32 audioCategory = kAudioSessionCategory_PlayAndRecord;
status = AudioSessionSetProperty(kAudioSessionProperty_AudioCategory, sizeof(audioCategory), &audioCategory);
[self hasError:status:__FILE__:__LINE__];

Float32 preferredBufferSize = 0.005805; // in seconds
status = AudioSessionSetProperty(kAudioSessionProperty_PreferredHardwareIOBufferDuration, sizeof(preferredBufferSize), &preferredBufferSize);
[self hasError:status:__FILE__:__LINE__];

status = AudioSessionSetActive(true);
.

첫 번째 오디오 세션 속성은 훨씬 더 부드럽게 재생되는 건너 뛰는 것을 멈췄습니다. 두 번째는 버퍼 지속 시간을 조정합니다. 콜백이 얼마나 자주 콜백을 해고하는 빈도로 다른 버퍼 크기를 제공합니다. 최선의 노력은 당신이 제공 한 가치에 따라 가깝게 얻을 수 있지만 사용 가능한 크기 목록을 가지고있는 것처럼 보입니다.

이 물건을 시작하기 위해 아주 좋은 자습서 / 샘플 프로그램을 위해 링크하는 게시물을 참조하십시오.

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