2012-05-07 2 views
1

Я реализую AVAudioPlayer и функцию быстрой перемотки вперед. Я сделал две кнопки с жестами, изображениями и эффектами свечения. В настоящее время, когда я нажимаю на ускоренную перемотку вперед, он сначала передает игровой элемент на 10 секунд, а затем играет так же, как в обычном режиме, хотя я все еще нажимаю кнопку. Я хочу реализовать его точно так же, как в стандартном приложении Iphone/Ipod.Быстрая перемотка назад и перемотка вперед в AVAudioPlayer

+0

вы использовали AVAudioPlayer.currentTime p roperty ??? –

ответ

4

Вместо этого вы можете использовать AVPlayer и изменить стоимость курса при касании. Измените его на -2 для перемотки назад и 2 для быстрой перемотки вперед. И не забудьте изменить скорость до 1 при касании внутри/снаружи.

РЕДАКТИРОВАТЬAVPlayer «s rate свойство поддерживает значения вне 0.0 - диапазона 1.0 ЕСЛИ

связанный проигрыватель элемент возвращает YES для AVPlayerItem свойств canPlaySlowForward или canPlayFastForward

https://developer.apple.com/documentation/avfoundation/avplayer/1388846-rate

+0

'Свойство' rate 'AVPlayer' позволяет только значения 0.5 для воспроизведения с половинной скоростью до 2.0 для воспроизведения с двойной скоростью. Таким образом, ваше решение идеально подходит для быстрой перемотки вперед, но не для перемотки назад. Вы должны использовать 'NSTimer', который устанавливает' currentTime' для поддержки перемотки. –

+0

@StefanArn есть ли у вас образец кода? –

+0

@JenelEjercitoMyers Ну это просто. Вместо свойства 'rate', которое не работает для перемотки, вы просто устанавливаете время дорожки прямо так:' [self.audioPlayer setCurrentTime: (self.audioPlayer.currentTime - 1.0f)]; 'Если вы хотите, чтобы пользователь может нажимать кнопку перемотки в течение более длительного времени и постоянно перематывать назад, вы просто вызываете 'setCurrentTime' снова и снова. Одним из решений было бы запустить «NSTimer», который делает это до тех пор, пока пользователь нажимает кнопку перемотки следующим образом: «[NSTimer scheduleTimerWithTimeInterval: 0.2 target: self selector: @selector (rewind :) userInfo: nil repeatts: YES];' –