Для моей игры Cocos 2d я хочу обнаружить голос с микрофона iphone, и он должен играть автоматически, для этого я использую peakPowerForChannel avaudiorecorder
Код:
const double ALPHA = 0.05;
NSString *currentRecorder=@"nil";
NSError *error;
if(checker.recording){
[checker updateMeters];
currentRecorder=@"checker";
peakPowerForChannel = pow(10, (ALPHA* [checker peakPowerForChannel:0]));
}
else if (recorder.recording) {
[recorder updateMeters];
peakPowerForChannel = pow(10, (ALPHA * [recorder peakPowerForChannel:0]));
currentRecorder=@"recorder";
}
// NSLog(@"-------------- %f",lowPassResults);
lowPassResults = ALPHA * peakPowerForChannel + (1.0 - ALPHA) * lowPassResults;
NSLog(@"%@ >>>>>>>>>>>>>>>>>>>>>> %f peakPowerForChannel ---%f",currentRecorder,lowPassResults,peakPowerForChannel);
if (lowPassResults >0.4){
if (!recorder.recording) {
[checker stop];
}
else{
if (recorder.recording) {
[recorder stop];
[checker record];
}
}
Впервые работает нормально. После воспроизведения аудио [рекордер peakPowerForChannel: 0] дает постоянное значение
Как я могу решить это
Спасибо