将带有单独音频的静音视频加载到HTML5视频标记中

时间:2015-08-31 14:25:58

标签: html5 audio tags html5-video html5-audio

我需要将静音视频和音频文件加载到相同的html5视频标记中。我试图找到这个,但我只发现了关于音频标签的文本,这不是我想要的。

我需要这样的东西:

<video controls="controls" poster="poster.jpg" width="640" height="360">
  <source src="08_gestao_documental_autoridades_brasileiras_SEM_AUDIO.mp4" type="video/mp4">
  <source src="autoridades_brasileiras.mp3" type="audio/mp3">
 </video>

1 个答案:

答案 0 :(得分:10)

那不是source的工作方式。 source元素确实是替代方案:如果浏览器不支持,则会转到下一个,直到它到达支持和播放的那个,然后只有那个将播放(其他人将会播放)被忽略)。

您不能在同一video / audio标记下同时播放两个来源(视频和音频)。正如您在网上找到的那样,如果您想要两个媒体元素(静音视频和音频),则需要两个媒体标签。

然后,至少在理论上(如果我没有误解),您可以使用mediagroup来控制和同步audiovideo元素,这样它们就是一起流动;但是mediagroup没有得到很好的支持......或者至少我还没有能够让它发挥作用,但你可能想要调查它,因为正如我所说,我可能误解了它是如何工作的:-S

另一种解决方案是将audio置于video内(作为备用代码),然后使用JavaScript同步它们。像这样:

<video id="myvideo" controls muted>
    <source src="path/to/video.mp4" type="video/mp4" />
    <audio id="myaudio" controls>
        <source src="path/to/audio.mp3" type="audio/mpeg"/>
    </audio>
</video>

<script>
var myvideo = document.getElementById("myvideo");
var myaudio = document.getElementById("myaudio");
myvideo.onplay  = function() { myaudio.play();  }
myvideo.onpause = function() { myaudio.pause(); }
</script>

你可以see an example on this JSFiddle