Joh*_*tty 1 iphone objective-c avaudiorecorder
对于我的cocos 2D游戏,我想从iphone的麦克风中检测语音,它应该自动播放,我正在使用avaudiorecorder的peakPowerForChannel代码:
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];
}
}
Run Code Online (Sandbox Code Playgroud)
它第一次工作正常.播放音频后,[recorder peakPowerForChannel:0]给出一个常数值我该如何解决这个问题
谢谢
小智 5
[recorder updateMeters]仅更新一次值.每次检查[recorder peakPowerForChannel:0]价值.你必须打电话给[recorder updateMeters]方法.这么好的方法是在检查值[recorder updateMeters]之前检查计时器和调用方法中的值.
| 归档时间: |
|
| 查看次数: |
1756 次 |
| 最近记录: |