【问题标题】:Detect amplitude of audio file per second?每秒检测音频文件的幅度?
【发布时间】:2011-07-13 06:07:46
【问题描述】:

我想使用 iPhone SDK 检测音频文件每秒的振幅(以 dB 为单位)。根据每秒声音文件的 dB 幅度,我需要此功能用于对象的嘴部动画。我怎样才能做到这一点 ?可以使用哪个音频框架? 您有任何示例的链接吗?

【问题讨论】:

    标签: iphone ios ios4 audio iphone-sdk-3.0


    【解决方案1】:

    我已经找到了解决这个问题的方法

    我使用了 AVAudioPlayer 的 peakPowerForChannel 和 averagePowerForChannel 方法来获取分频

      AVAudioPlayer *avPlayer = [[AVAudioPlayer alloc] initWithContentsOfURL:recordedTmpFile error:&error];
        avPlayer.delegate = self;
    
        avPlayer.meteringEnabled = YES;
         [avPlayer prepareToPlay];
         [avPlayer play];
    
    
     NSTimer *levelTimer = [NSTimer scheduledTimerWithTimeInterval: 0.03 target: self selector: @selector(levelTimerCallback:) userInfo: nil repeats: YES];
    

    这个方法返回peakPowerForChannel和averagePowerForChannel

    - (void)levelTimerCallback:(NSTimer *)timer {
    
        [avPlayer updateMeters];
        NSLog(@"Peak left: %f Avg right: %f", [avPlayer peakPowerForChannel:0],[avPlayer averagePowerForChannel:0]);
    
    
    }
    

    【讨论】:

      【解决方案2】:

      看起来不错,虽然很抱歉,但不知道任何 iPhone 编程: http://www.politepix.com/2010/06/18/decibel-metering-from-an-iphone-audio-unit/

      【讨论】:

      • 我看过这个链接,但我看不懂代码 sn-p
      • 我建议将代码拉到 Xcode 中,并研究它直到你理解为止,这就是这样做的方法!
      • 我不明白如何使用远程IO的rendercallback函数调用录制的文件。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-09-02
      • 1970-01-01
      相关资源
      最近更新 更多