Ответ 1
Атрибут playbackRate
теперь поддерживается в iOS 6 Safari.
Я пытаюсь воспроизвести видео в формате HTML5 в обратном порядке на iPad (видео должно переключаться между прямым и обратным произвольно на основе пользовательского ввода).
Элемент HTML5 <video>
включает в себя свойство под названием playbackRate
, которое позволяет воспроизводить видео с большей или меньшей скоростью или наоборот. Согласно документации Apple, это свойство не поддерживается в iOS.
Воспроизведение в обратном направлении может быть подделано без использования playbackRate
, установив свойство currentTime
несколько раз в секунду (например, 10-30 обновлений в секунду). Этот подход работает на рабочем столе Safari, но похоже, что поиск ограничено устройствами iOS примерно до 1 обновления в секунду - слишком медленно в моем случае.
Есть ли способ воспроизвести видео на HTML5 назад на устройстве iOS (а именно iPad)?
(Я тестирую iPad 2 с 4.3.1)
Атрибут playbackRate
теперь поддерживается в iOS 6 Safari.
Как предложил Михай, используйте две версии и обновите местоположение поиска, когда пользователь изменит направление воспроизведения.
Сложите видео в DIV друг на друга, и когда направление воспроизведения перевернуто, переключите видимость div (и приостановите воспроизведение скрытого).
Итак, это временная шкала:
Почему бы не сшить реверс и вперед версии вместе в один фильм?
Это устраняет проблему разгрузки и загрузки видео, когда пользователь переворачивает направление. При использовании одного подхода к фильму, когда пользователь поворачивает направление, все, что вам нужно сделать, - это определить соответствующую точку в другой половине фильма и искать там.
Мое предложение - сделать "фальшивый" видеоплеер в вашем HTML-коде. Затем захватите попытку пользователя "воспроизвести" видео, используя методы обратного вызова safari/ios. Затем создайте MPMoviePlayerController, который фактически загружает видео и отображает его поверх исходной позиции видео в браузере или поддерживает только полноэкранное воспроизведение. MPMediaPlayback протокол поддерживает обратное воспроизведение через свойство currentPlaybackRate, так что, надеюсь, это должно быть временное исправление, поскольку я не вижу версию iOS для Safari не в конечном итоге реализуя эту функцию, поскольку она поддерживается родным игроком.
ПРИМЕЧАНИЕ. Я был глупым и пропустил нетривиальную часть вопроса, поэтому следующее для целей iOS довольно бесполезно.
Через минуту Googling я нашел следующий код и объяснил, как поддерживать обратное воспроизведение видео html5 в браузерах на основе Webkit:
function speedup(video, direction) {
if (direction == undefined) direction = 1; // or -1 for reverse
if (video.playbackRate != undefined) {
video.playbackRate = direction == 1 ? 2 : -2;
} else { // do it manually
video.setAttribute('data-playbackRate', setInterval ((function playbackRate () {
video.currentTime += direction;
return playbackRate; // allows us to run the function once and setInterval
})(), 500));
}
}
function playnormal(video) {
if (video.playbackRate != undefined) {
video.playbackRate = 1;
} else { // do it manually clearInterval(video.getAttribute('data-playbackRate’)); }
}
Источник: http://net.tutsplus.com/tutorials/html-css-techniques/html5-audio-and-video-what-you-must-know/
Вам нужно передать видеообъект html5 в функцию ускорения, но опять же эту функцию можно было бы свести к следующему (я еще не тестировал это, это специальная функция iPad):
function reverseVideo(video) {
video.playbackRate = -1;
}
Не стесняйтесь играть и искать дополнительную информацию о элементе видео html5:)