나는 그 녹음의 녹음과 재생을위한 오디오 레벨 미터를 표시한다. 레벨 값은 0 - 1.0입니다. 화면에 0 - 1.0 값을 나타내는 막대를 그립니다. 기록을 위해 오디오 레벨을 얻으려면 내가 사용 : 재생iPhone 녹음 및 재생 오디오 레벨 미터를 어떻게 동일하게 만들 수 있습니까?
OSStatus status = AudioQueueGetProperty(aqData.mQueue, kAudioQueueProperty_CurrentLevelMeter, aqLevelMeterState, &levelMeterStateDataSize);
float level = aqLevelMeterState[0].mAveragePower;
내가 사용
는// soundPlayer is an AVSoundPlayer
float level = [soundPlayer averagePowerForChannel:0];
I는 0에서 수준 정상화 - 1.0.
바로 지금은 막대를 표시 할 때 매우 다르게 보입니다. 레코딩 미터 막대는 로우 엔드에 더 많은 반면 재생 막대 미터는 동일한 녹음 된 오디오를 재생할 때 중간에 더 많이 머물러 있습니다.
저는 두 미터를 똑같이 보이게하려고 노력하고 있습니다.하지만 저는 오디오에 상당히 익숙합니다. 조사를 조금 해봤는데 녹음 내용이 RMS 값을 반환하고 재생이 데시벨 단위로 반환된다는 것을 알았습니다.
오디오에 익숙한 사람은 링크 나 문서를 가리킬 수 있습니까? 아니면이 두 값을 이해할 수 있도록 약간의 힌트를 제공하여 내가 똑같이 보이게 할 수 있습니까?
흠. 녹음은 RMS로되어 있으므로 재생 값에 대해이 작업을 수행합니다. 데시벨 값을 샘플로 사용하고 이것이 어떻게 진행되는지 살펴 보겠습니다. 감사! – kailoon
이것은 그렇게 보이지 않습니다. 네 말이 맞아, 데이터에 대해 더 알고 싶다. 나는 나의 질문이 주로 무엇에 관한 것인지 추측한다. 그들은 mAveragePower가 RMS라고 말하면서 그것이 무엇인지 이해하지만, 그것을 얻기 위해 무엇을 사용 했습니까? 평균 전력은 데시 볼 (decibals)의 RMS이며 0 - 1.0 등으로 정규화됩니까? 질문에 추가하거나 후속 질문을 게시하여 해당 값에 대한 세부 정보를 얻으십시오. – kailoon
RMS는 샘플 값을 기반으로합니다. 오디오 신호는 주어진 샘플 속도의 샘플로 구성됩니다. 데시보 (decibals)와는 아무런 관련이 없습니다. 여기 PCM에 대해 읽어보십시오. http://en.wikipedia.org/wiki/Pulse-code_modulation 도움이 될 수 있습니다. – madmik3