我正在使用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 ];
}
}
在书面文字中,我获得了该音频播放器的浮动电量。 有没有办法改变这个音频播放器的峰值功率,以便声音变为某些funnysound或其他东西。 通过使用音频或其他东西是可能的。 我是通过使用DIRAC完成的。 但是因为我无法获得powervalue.AS它总是返回静态功率值。
提前致谢。
答案 0 :(得分:0)
平均功率和峰值功率水平不可写;它们是样本数据的计算特征。
player.volume = x
其中x大于1.0将在扬声器出现之前放大声级。如果你将它设置为一个像20或100这样愚蠢的高数字,它听起来会很有趣!
如果你想对样本做更多有趣的事情,我认为你将不得不使用像RemoteIO或AudioQueue这样的低级API。