gpt4 book ai didi

javascript - 如何让 Html5 音频在点击时播放声音? (ogg 用于 Firefox 等浏览器,mp3 用于 chrome 等浏览器)

转载 作者:行者123 更新时间:2023-11-27 22:34:01 24 4
gpt4 key购买 nike

如何让 Html5 音频在点击时播放声音? (ogg 用于 Firefox 等浏览器,mp3 用于 chrome 等浏览器)

到目前为止,我可以通过 onclick 更改为单个文件类型,但我无法像在普通的 html5 音频声明中那样让它具有备份选项,即

<audio controls>
<source src="horse.ogg" type="audio/ogg">
<source src="horse.mp3" type="audio/mpeg">
Your browser does not support the audio element.
</audio>

代码:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">

<head>
<meta content="text/html; charset=utf-8" http-equiv="Content-Type" />
<title>How do i call the javascript function and get it to play .ogg if can't play .mp3?</title>
</head>
<body>
<audio id="Mp3Me" autoplay autobuffer controls>
<source src="Piano.mp3">
</audio>

<a href="javascript:GuitarTrack()">Guitar</a>

<script type="text/javascript">
function GuitarTrack(){
var Mp3Me= document.getElementById('Mp3Me');
Mp3Me.src = "Guitar.mp3";
Mp3Me.src = "Guitar.ogg";
}
</script>

</body>

</html>

最佳答案

因为您只创建一个 <source>元素,您必须创建另一个 <source> HTML 中的元素或使用 JavaScript 创建一个元素。

  1. 使用 HTML 创建第二个元素。 http://jsfiddle.net/PVqvC/

    <audio id="Mp3Me" autoplay autobuffer controls>
    <source src="Piano.mp3">
    <source src="Piano.ogg">
    </audio>
    <a href="javascript:GuitarTrack();">Guitar</a>

    <script type="text/javascript">
    function GuitarTrack(){
    var Mp3Me= document.getElementById('Mp3Me');
    Mp3Me.children[0].src = "Guitar.mp3";
    Mp3Me.children[1].src = "Guitar.ogg";
    Mp3Me.load();
    }
    </script>
  2. 使用 JS 创建第二个元素。 http://jsfiddle.net/MBvsC/1/

    <audio id="Mp3Me" autoplay autobuffer controls>
    <source src="Piano.mp3">
    </audio>
    <a href="javascript:GuitarTrack();">Guitar</a>

    <script type="text/javascript">
    function GuitarTrack(){
    var Mp3Me= document.getElementById('Mp3Me').getElementsByTagName('source');

    if(Mp3Me.length > 1) { //there are 2 elements
    Mp3Me[0].src = "Guitar.mp3";
    Mp3Me[1].src = "Guitar.ogg";
    }
    if(Mp3Me.length == 1) { //only one element, so we need to create the second one
    Mp3Me[0].src = "Guitar.mp3"; //changes existing element

    var node = document.getElementById('Mp3Me');
    var newelem = document.createElement('source');
    newelem.setAttribute('src', 'Guitar.ogg');
    node.appendChild(newelem); //creating new element with appropriate src
    }
    Mp3Me.load();
    }
    </script>

如您所见,第一种方法更短更简洁,所以如果您可以使用它,请使用它。如果您有任何其他问题 - 请随时提问。

关于javascript - 如何让 Html5 音频在点击时播放声音? (ogg 用于 Firefox 等浏览器,mp3 用于 chrome 等浏览器),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15317318/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com