저는 학교에서 일하고있는 iPhone 응용 프로그램에 대한 두 개의 오디오 파일의 평균 볼륨 (dB)을 비교하고 싶습니다. 나는 Xcode, Objective-C에서 일하고있다.Objective-C를 사용하여 오디오 파일의 평균 볼륨을 결정하는 방법은 무엇입니까?
일부 연구 끝에 AVFoundation Framework에서 "averagePowerForChannel :"을 발견했지만 어떻게 작동하는지 알 수 없습니다. 다음은 코드의 일부입니다 :
NSString *stringPath = [NSBundle mainBundle]pathForResource:wavname ofType:@"wav"];
NSURL *url = [NSURL fileURLWithPath:stringPath];
avPlayer = [[AVaudioPlayer alloc]initWithContentsOfUrl:url error:nil];
[avPlayer play];
위의 코드는 'wavname'이라는 이름의 .wav 파일을 재생합니다. 평균 볼륨을 결정하려면 어떻게해야합니까?
[avPlayer averagePowerForChannel:0];
위의 te 코드를 추가하면 -160.000이 반환됩니다. 오디오 파일의 시작 부분에있는 볼륨 레벨입니다.
어떻게 올바르게 사용합니까? 왜냐하면, 현재로서는 "averagePower"라고 불리는 이유를 볼 수 없기 때문에 한 번에 볼륨을 확인하는 것처럼 보입니다.
"현재 평균 전력 값을 얻으려면이 메서드를 호출하기 전에 updateMeters 메서드를 호출해야합니다."- 시도 했습니까? – moonwave99
응답 @ moonwave99에 감사드립니다. 나는 덧붙였다 : '[avPlayer updateMeter]; ' 그러나 여전히 -160.000을 반환한다. 나는 루프를 만들고, 간격으로 값을 확인하고, 평균 볼륨을 계산할 수 있다고 생각합니다. 하지만, 왜 내가 그것을 할 필요가있을 때 averagePower라고 불리는가? – RoelfMik
내 질문에 대답하려면 : 볼륨 측정은 항상 평균입니다. 왜냐하면 볼륨을 결정하기 위해 여러 샘플 값이 필요하기 때문입니다. – RoelfMik