MPMoviePlayerController setCurrentPlaybackRate не работает при значении 1,0 (для замедленного видео)

Я хотел воспроизвести видео в 5 раз медленнее (видео mp4, локальный файл), чтобы получить эффект слоумоушена, но это просто не работает. При значениях выше 1.0, например 2.0f, работает корректно, проигрывая видео в 2 раза быстрее.

Это код, который я использовал для воспроизведения видео на скорости 20%:

[_player prepareToPlay];
[_player play];
[_player setCurrentPlaybackRate:0.2f];

С этим кодом видео воспроизводится с нормальной скоростью (1,0f), игнорируя мое значение 0,2f.

iOS 6.1.3 XCode 4.6.2

Тестирование на устройстве.


person Hello World    schedule 01.05.2013    source источник


Ответы (1)


Это определенно имеет значение, когда вы звоните

[_player setCurrentPlaybackRate:0.2f];

Я столкнулся с подобными проблемами. Я установил UISlider для управления скоростью воспроизведения. Если я изменяю скорость во время воспроизведения видео, она действительно меняет скорость. Однако, если я приостановлю его, а затем снова нажму кнопку воспроизведения, он вернется к стандартной скорости 1x. Даже если я использую

MPMoviePlayerPlaybackStateDidChangeNotification

чтобы прослушать игровое обновление, а затем позвонить

[_player setCurrentPlaybackRate:x.xx];.

Я считаю, что игрок устанавливает свое собственное значение с помощью игровой механики, в настоящее время я пытаюсь найти обходной путь, чтобы обновить это до моего значения UISlider при нажатии кнопки воспроизведения. В настоящее время он переопределяет значение по какой-либо причине.

Хотя это не полное решение, я надеюсь, что это поможет вам двигаться вперед.

person David Hegner    schedule 03.06.2013