在iOS上向后播放HTML5视频

时间:2011-08-24 00:01:32

标签: ios ipad html5 mobile-safari html5-video

我正试图在iPad上反向播放HTML5视频(视频需要根据用户输入随意切换正向和反向)。

HTML5 <video>元素包含一个名为playbackRate的属性,允许以更快或更慢的速度播放视频,或者反向播放。根据{{​​3}},iOS不支持此属性。

通过每秒多次设置playbackRate属性(例如每秒10-30次更新),可以在不使用currentTime的情况下伪造反向播放。这种方法适用于桌面Safari,但似乎iOS设备上的搜索限制为每秒大约1次更新 - 在我的情况下速度太慢。

有没有办法在iOS设备(即iPad)上向后播放HTML5视频?

(我在运行4.3.1的iPad 2上进行测试)

5 个答案:

答案 0 :(得分:3)

正如Mihai建议的那样,使用这两个版本并在用户更改播放方向时更新搜索位置。

将DIV中的视频叠加在一起,当翻转播放方向时,切换div可见性(并暂停播放隐藏的播放)。

所以这是时间表:

  1. 用户点击回放切换。
  2. 暂停显示的视频。
  3. 获取所显示视频的位置。
  4. 从视频时长中减去该值。
  5. 在未显示的视频中寻找此值。
  6. 切换显示的视频DIV。
  7. 开始播放新显示的视频。

答案 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视频元素上搜索更多信息:)

相关问题