【问题标题】:Edit averagePowerForChannel of avaudioplayer in iphone编辑iphone中avaudioplayer的averagePowerForChannel
【发布时间】:2013-03-14 06:44:43
【问题描述】:

我正在使用 AVaudioplayer 播放 .mp3 文件:-

 NSURL *url = [NSURL fileURLWithPath:[[NSBundle mainBundle]pathForResource:@"Speech"ofType:@"mp3"]];    
    NSError *error;
    audioPlayer = [[AVAudioPlayer alloc]initWithContentsOfURL:url error:&error];    
    if (error)
    {
        NSLog(@"Error in audioPlayer: %@",
              [error localizedDescription]);
    } else {
        audioPlayer.delegate = self;
        audioPlayer.numberOfLoops=-1;
        [audioPlayer prepareToPlay];
        [audioPlayer play];
    }
    audioPlayer.meteringEnabled = YES;
    audioPlayer.volume=0;
    NSTimer *playerTimer = nil;
    if (!playerTimer)
    {
        playerTimer = [NSTimer scheduledTimerWithTimeInterval:0.001
                                                       target:self selector:@selector(monitorAudioPlayer)
                                                     userInfo:nil
                                                      repeats:YES];
    }

    [audioPlayer updateMeters];

-(void)monitorAudioPlayer{


    [audioPlayer updateMeters];

    for (int i=0; i<audioPlayer.numberOfChannels; i++)
    {        
        float power = [ audioPlayer averagePowerForChannel: i ];
        float peak = [ audioPlayer peakPowerForChannel: i ];
}
}

并且以书面形式,我得到了该音频播放器的浮点数。 有没有办法改变这个音频播放器的峰值功率,使声音变成一些有趣的声音或其他东西。 通过使用音频会话或其他一些东西是可能的。 我是通过使用 DIRAC 完成的。 但我无法获得 powervalue。因为它总是返回静态 powervalue。

提前致谢。

【问题讨论】:

    标签: iphone ios avaudioplayer avaudiosession


    【解决方案1】:

    平均和峰值功率电平不可写;它们是样本数据的计算特征。

    player.volume = x 其中 x 大于 1.0 将在声音从扬声器中出来之前放大声音级别。如果你把它设置为一个像 20 或 100 这样愚蠢的数字,它最终会听起来很有趣!

    如果您想对示例做更多有趣的事情,我认为您将不得不使用像 RemoteIO 或 AudioQueue 这样的低级 API。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-02-26
      • 2012-01-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-11-28
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多