Safari 中 html5 视频的斜坡慢动作

问题描述 投票:0回答:1

您可以在此处查看https://hyperaud.io/lab/pbr-test/ 使用除 Safari 之外的任何浏览器,您都可以修改 plabackRate,而不会中断视频播放。

在 Safari 中,似乎每次修改播放速率时视频都会重新缓冲(暂停 0.5 秒)

我会每 50 毫秒更改 video.playbackRate 以显示视频的斜坡慢动作或渐进慢动作。

这段 javascript 代码可以完成这项工作,但不幸的是在 Safari(iOS 或 MacOS)中无法工作

var rint=null;
function iniramp(){
//pt is the central time point where make the ramped slow motion
    var sr=pt-1.5,er=pt+1.5; 
    if(sr<0)sr=0;
//et is end time of video
    if(er>et)er=et;
    video.currentTime=sr;
    video.playbackRate=0.98;
    rint=setInterval(function(){doramp(sr,er)},50);
    if (video.paused) video.play();
}


function doramp(sr,er){
    var p,step=0.02,pbr=video.playbackRate,minrate=0.25,ct=parseFloat(video.currentTime);
    if (pbr<0.5)step=0.01;
    if (ct<pt){
        p=pbr-step;
        if(p<minrate)p=minrate;
    } else {
        p=pbr+step;
        if(p>1)p=1;
        if (ct>er){endramp();iniramp();return false;}
    }
    video.playbackRate=p;
}

对 Safari 有什么想法吗?

javascript html5-video
1个回答
0
投票

不幸的是,这在 Safari 中已经是一个已知问题相当长一段时间了。我不知道有什么解决方法。

https://bugs.webkit.org/show_bug.cgi?id=163433

最新问题
© www.soinside.com 2019 - 2024. All rights reserved.