AVQueuePlayer 设置音频的速度
AVQueuePlayer set Tempo of audio
我正在使用 AVQueuePlayer
播放本地保存的多个音频。
参考以下代码,
for (int j = 0; j < arrPlayData.count; j++) {
path =[[NSBundle mainBundle] pathForResource:[[arrPlayData objectAtIndex:j] valueForKey:AUDIO_NAME] ofType:@"wav"];
item = [[AVPlayerItem alloc] initWithURL:[NSURL fileURLWithPath:path]];
if (_queuePlayer == nil) {
_queuePlayer = [[AVQueuePlayer alloc] initWithPlayerItem:item];
} else{
[_queuePlayer insertItem:item afterItem:nil];
}
}
[_queuePlayer setVolume:1.0];
[_queuePlayer play];
这工作正常,
现在我想为生成的音频应用 0 到 240 之间的速度,如下图所示。
我知道 setRate:
属性 并应用如下,
[_queuePlayer setRate:sldValue/240.0];
此处,sldValue 是 select 从上方滑块编辑的值。在这里,如果我从滑块 select 240 然后速率变为 1(以正常形式播放音频 - 原始形式)。当我 select 降低滑块的值时,它会减慢音频速度。
我的问题是如何提高音频速度然后正常播放。或者这个节奏是如何运作的?
非常感谢任何帮助。提前致谢!
[_queuePlayer setRate:sldValue/245.0];
Here, sldValue is selected value from above slider. Here if I select 240 from slider then rate becomes 1(Which plays audio in normal form - Original one). And as I select down value from slider then it will slow down the audio speed.
那是因为这正是您所要求的。想想看。如果滑块在 240,那么 sldValue/245.0
大约是 1,这意味着正常,就像你说的那样。而如果你向下滑动,比方说到120,那么sldValue/245.0
大约是1/2,也就是一半的速度。
该程序完全按照您的指示进行操作。如果那不是你想要的,那就别说了!
此外,您需要适当地设置播放器物品的audioTimePitchAlgorithm
,否则您将无法获得全方位的比率。参见:AVPlayer rate property does not work?
我正在使用 AVQueuePlayer
播放本地保存的多个音频。
参考以下代码,
for (int j = 0; j < arrPlayData.count; j++) {
path =[[NSBundle mainBundle] pathForResource:[[arrPlayData objectAtIndex:j] valueForKey:AUDIO_NAME] ofType:@"wav"];
item = [[AVPlayerItem alloc] initWithURL:[NSURL fileURLWithPath:path]];
if (_queuePlayer == nil) {
_queuePlayer = [[AVQueuePlayer alloc] initWithPlayerItem:item];
} else{
[_queuePlayer insertItem:item afterItem:nil];
}
}
[_queuePlayer setVolume:1.0];
[_queuePlayer play];
这工作正常,
现在我想为生成的音频应用 0 到 240 之间的速度,如下图所示。
我知道 setRate:
属性 并应用如下,
[_queuePlayer setRate:sldValue/240.0];
此处,sldValue 是 select 从上方滑块编辑的值。在这里,如果我从滑块 select 240 然后速率变为 1(以正常形式播放音频 - 原始形式)。当我 select 降低滑块的值时,它会减慢音频速度。
我的问题是如何提高音频速度然后正常播放。或者这个节奏是如何运作的?
非常感谢任何帮助。提前致谢!
[_queuePlayer setRate:sldValue/245.0];
Here, sldValue is selected value from above slider. Here if I select 240 from slider then rate becomes 1(Which plays audio in normal form - Original one). And as I select down value from slider then it will slow down the audio speed.
那是因为这正是您所要求的。想想看。如果滑块在 240,那么 sldValue/245.0
大约是 1,这意味着正常,就像你说的那样。而如果你向下滑动,比方说到120,那么sldValue/245.0
大约是1/2,也就是一半的速度。
该程序完全按照您的指示进行操作。如果那不是你想要的,那就别说了!
此外,您需要适当地设置播放器物品的audioTimePitchAlgorithm
,否则您将无法获得全方位的比率。参见:AVPlayer rate property does not work?