我正试图在iPad上反向播放HTML5视频(视频需要根据用户输入随意切换正向和反向)。
HTML5 <video>
元素包含一个名为playbackRate
的属性,允许以更快或更慢的速度播放视频,或者反向播放。根据{{3}},iOS不支持此属性。
通过每秒多次设置playbackRate
属性(例如每秒10-30次更新),可以在不使用currentTime
的情况下伪造反向播放。这种方法适用于桌面Safari,但似乎iOS设备上的搜索限制为每秒大约1次更新 - 在我的情况下速度太慢。
有没有办法在iOS设备(即iPad)上向后播放HTML5视频?
(我在运行4.3.1的iPad 2上进行测试)
答案 0 :(得分:3)
正如Mihai建议的那样,使用这两个版本并在用户更改播放方向时更新搜索位置。
将DIV中的视频叠加在一起,当翻转播放方向时,切换div可见性(并暂停播放隐藏的播放)。
所以这是时间表:
答案 1 :(得分:2)
为什么不将反向和正向版本拼接成一部电影?
这消除了当用户翻转方向时卸载和加载视频的问题。使用单一电影方法,当用户翻转方向时,您需要做的就是找出电影另一半中的对应点并寻找到那里。
答案 2 :(得分:2)
iOS 6 Safari现在支持playbackRate
属性。
答案 3 :(得分:0)
我的建议是在HTML代码中制作一个“虚假”的视频播放器。然后使用safari / ios回调方法捕获用户尝试“播放”视频。然后创建一个MPMoviePlayerController,它实际加载视频并将其显示在浏览器中视频的原始位置,或仅支持全屏播放。 MPMediaPlayback协议支持通过currentPlaybackRate属性进行反向播放,所以希望这应该是一个临时修复,因为我看不到iOS版本的Safari最终没有实现此功能,因为本机播放器支持它。
答案 4 :(得分:0)
注意:我是愚蠢的,错过了一个非常重要的部分问题,所以以下对于iOS目的来说是无用的
在谷歌搜索片刻之后,我发现了以下代码以及如何在基于Webkit的浏览器上支持html5视频反向播放的说明:
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视频元素上搜索更多信息:)