AVQueuePlayer устанавливает темп аудио
Я использую 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 выбрано значение сверху слайдера. Здесь, если я выбираю 240 из ползунка, тогда скорость становится 1(который воспроизводит звук в обычном виде - оригинальный) И когда я выбираю значение вниз с ползунка, это замедляет скорость звука.
Мой вопрос заключается в том, как увеличить скорость звука, а затем нормально играть. Или как этот темп точно работает?
Любая помощь очень ценится. Заранее спасибо!
1 ответ
[_queuePlayer setRate:sldValue/245.0];
Здесь sldValue выбрано значение сверху слайдера. Здесь, если я выбираю 240 из ползунка, тогда скорость становится 1(который воспроизводит звук в обычном виде - оригинальный) И когда я выбираю значение вниз с ползунка, это замедляет скорость звука.
Это потому, что это именно то, что вы просите. Думаю об этом. Если ползунок на 240, то sldValue/245.0
примерно 1, что означает нормальный, как вы говорите. И если вы скользите вниз, скажем, до 120, то sldValue/245.0
примерно 1/2, что составляет половину скорости.
Программа делает именно то, что вы говорите, чтобы сделать. Если это не то, что вы хотите, то не говорите так!
Кроме того, вам нужно будет установить audioTimePitchAlgorithm
из ваших предметов игрока соответственно, или вы не сможете достичь полного диапазона ставок. Смотрите: свойство оценки AVPlayer не работает?