Javascript添加2个视频源

Javascript添加2个视频源,javascript,html,video,mp4,webm,Javascript,Html,Video,Mp4,Webm,嗨,我对javascript非常陌生。我有一个.webm和.mp4视频源,但是如何在javascript中添加另一个源,我只设法添加了1(webm),我需要添加另一个源的代码是什么 先谢谢你 嗨,我之所以需要加入JS,是因为divx插件正在取代html5视频元素,就像在这个线程上一样 这是我的密码 <script type="text/javascript"> function changevid() { document.getElementById('vid').inne

嗨,我对javascript非常陌生。我有一个.webm和.mp4视频源,但是如何在javascript中添加另一个源,我只设法添加了1(webm),我需要添加另一个源的代码是什么

先谢谢你


嗨,我之所以需要加入JS,是因为divx插件正在取代html5视频元素,就像在这个线程上一样

这是我的密码

<script type="text/javascript">
function changevid() {
    document.getElementById('vid').innerHTML = '<source src="http://avalonplay.com/video/loginvideo.webm" type="video/webm" />';
   document.getElementById('vid').load();
}
</script>

<body onload="changevid()">

   <video id="vid" width="800" height="450" loop="loop" preload="auto" autoplay style="width: 100%; height: auto; margin:0; right: 0;">    
   </video>

</body>

函数changevid(){
document.getElementById('vid').innerHTML='';
document.getElementById('vid').load();
}

您可以使用
.appendChild()
而不是
.innerHTML

但更好的解决方案是测试浏览器支持,然后只添加受支持的视频类型:

window.onload = function(){

    var vid = document.getElementById('vid');
    var source = document.createElement('source');
    var supported = supportedVidType();

    source.src = 'http://avalonplay.com/video/loginvideo'+supported.src
    source.type = supported.type

    vid.appendChild( source );

}

var supportedVidType = function(){
    var vidTest = document.createElement( "video" )

    var types = {}

    if ( vidTest.canPlayType ) {
        // Check for MPEG-4 support
        types.mp4 = "" !== vidTest.canPlayType( 'video/mp4; codecs="mp4v.20.8"' )

        // Check for Webm support
        types.webm = "" !== vidTest.canPlayType( 'video/webm; codecs="vp8, vorbis"' );

        // Check for Ogg support
        types.ogg = "" !== vidTest.canPlayType( 'video/ogg; codecs="theora"' );
    }

    for( type in types ){
        if(types[type]) {
            return {
                type: 'video/'+type,
                src: '.'+type
            }
        } 
    }
}

下面是一个JSIDLE:

您可以使用
.appendChild()
而不是
.innerHTML

但更好的解决方案是测试浏览器支持,然后只添加受支持的视频类型:

window.onload = function(){

    var vid = document.getElementById('vid');
    var source = document.createElement('source');
    var supported = supportedVidType();

    source.src = 'http://avalonplay.com/video/loginvideo'+supported.src
    source.type = supported.type

    vid.appendChild( source );

}

var supportedVidType = function(){
    var vidTest = document.createElement( "video" )

    var types = {}

    if ( vidTest.canPlayType ) {
        // Check for MPEG-4 support
        types.mp4 = "" !== vidTest.canPlayType( 'video/mp4; codecs="mp4v.20.8"' )

        // Check for Webm support
        types.webm = "" !== vidTest.canPlayType( 'video/webm; codecs="vp8, vorbis"' );

        // Check for Ogg support
        types.ogg = "" !== vidTest.canPlayType( 'video/ogg; codecs="theora"' );
    }

    for( type in types ){
        if(types[type]) {
            return {
                type: 'video/'+type,
                src: '.'+type
            }
        } 
    }
}

下面是一个JSFIDLE:

视频标签支持多个源:

<video width="320" height="240" controls>
  <source src="movie.mp4" type="video/mp4">
  <source src="movie.ogg" type="video/ogg">
  Your browser does not support the video tag.
</video>

您的浏览器不支持视频标记。

from:

视频标签支持多个源:

<video width="320" height="240" controls>
  <source src="movie.mp4" type="video/mp4">
  <source src="movie.ogg" type="video/ogg">
  Your browser does not support the video tag.
</video>

您的浏览器不支持视频标记。

发件人:

我建议您只添加您需要的一个

例如:

function changevid() {
   var vid = document.getElementById('vid');

   if (vid.canPlayType('video/mp4') != '') {
      vid.src = 'http://avalonplay.com/video/loginvideo.mp4';
   }
   else if (vid.canPlayType('video/webm') != '') {
      vid.src = 'http://avalonplay.com/video/loginvideo.webm';
   }
   vid.load();
}

我建议您只添加您需要的一个

例如:

function changevid() {
   var vid = document.getElementById('vid');

   if (vid.canPlayType('video/mp4') != '') {
      vid.src = 'http://avalonplay.com/video/loginvideo.mp4';
   }
   else if (vid.canPlayType('video/webm') != '') {
      vid.src = 'http://avalonplay.com/video/loginvideo.webm';
   }
   vid.load();
}

嗨,我之所以需要加入JS,是因为divx插件正在取代html5视频元素,就像在这个线程上一样。。正是因为有了你这个宽容的程序员,divx人才赢了。。!!!!你真丢脸!!!!!!!嗨,我之所以需要加入JS,是因为divx插件正在取代html5视频元素,就像在这个线程上一样。。正是因为有了你这个宽容的程序员,divx人才赢了。。!!!!你真丢脸!!!!!!!