0

我为 HTML5 视频开发了一个 API。该插件的特点是查看器可以更改正在播放的视频。(通过 JQuery 更改不同的源 url)。

我几乎完成了任务。但它不适用于ie9。让我在这里分享源文件。

$hdVideo.attr('src', videoAttr.src[i]);
gPlay();
createSeek();
createBuffer();
playerstage=0;

第一行将新的源文件注入视频元素。它在所有主流浏览器中都能完美运行,除了 ie9。我什至无法检查 ie9 中正在运行的 html 编码(当我们通过 js 进行一些更改时,它不会反映在检查元素中)。

链接位于:http: //iseofirm.net/appthateam/vel/static3/

4

1 回答 1

0

我自己得到了解决方案,终于!!!!!!

问题:IE9 索引第一个标签,即使我们通过 jQuery 将 src="" 注入标签

解决方案:播放器启动时,将第一个“source”元素的“src”值注入标签。

if(firstTime)
    {
        $hdVideo.attr('src', videoAttr.src[0]);
        firstTime=0;
    }

然后编写函数将相应的“source url”注入标签的 src="" 属性...

var hdswipe = function(){
            var currVid, currExt, currVidName, currQuality, i;
            if($hdVideo.attr('paused')==false)
                playerstage=1;
            currVid = $hdVideo[0].currentSrc;
            currExt = currVid.substr(currVid.lastIndexOf('.') + 1);

            for(i=0; i<videoAttr.quality.length; i++) //Get current video quality
                if(currVid == videoAttr.src[i])
                    currQuality=videoAttr.quality[i];

            for(i=0; i<videoAttr.quality.length; i++) //Swipe the Video
            {
                if((currExt==videoAttr.src[i].substr(videoAttr.src[i].lastIndexOf('.') + 1))&&(currQuality!= videoAttr.quality[i]))
                {  
                    $hdVideo.attr('src', videoAttr.src[i]);
                    gPlay();
                    createSeek();
                    createBuffer();
                    playerstage=0;
                    break;
                }
            }
            if(currQuality == "sd")
                $("a.hd-hd-swipe-button").addClass("hd-hd-swipe-button-hd");
            else
                $("a.hd-hd-swipe-button").removeClass("hd-hd-swipe-button-hd");
            return false;
        }
于 2012-10-12T06:04:43.807 回答