IE9没有播放通过JQuery注入的更新视频源

时间:2012-10-11 12:52:22

标签: javascript jquery html5 internet-explorer-9 html5-video

我为HTML5视频开发了一个API。该插件的特色是观众可以改变正在播放的视频。 (通过JQuery更改不同的源URL)。

我几乎完成了任务。但它不在ie9中工作。让我在这里分享源文件。

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

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

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

1 个答案:

答案 0 :(得分:0)

我自己得到了解决方案,最后!!!!!

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

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

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

然后编写函数将相应的“源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;
        }