Javascript/html 音频问题

Posted

技术标签:

【中文标题】Javascript/html 音频问题【英文标题】:Javascript/html audio problems 【发布时间】:2014-02-12 16:48:45 【问题描述】:

我的代码有一些问题。首先,我希望在我正在播放的歌曲结束后播放一首歌曲(带有音频标签)。

<audio id="batmansong1">
  <source src="Songs/nanananabatman.m4a">
</audio>
<button id="play" onclick="document.getElementById('batmansong1').play()"><img src="Buttons/play.jpg"  ></button>
<button id="pause" onclick="document.getElementById('batmansong1').pause()"><img src="Buttons/pause.jpg"  ></button>

如您所见,按钮将播放或暂停第一个音频剪辑。但是,我希望他们在第二个音频剪辑开始播放时也暂停并播放它。

【问题讨论】:

你试过什么?您当前拥有的代码只会在单击按钮时播放歌曲一次。 我粘贴的代码可以帮助你播放声音。请更清楚您的问题。 html5 audio playlist - how to play a second audio file after the first has ended?的可能重复 我尝试过使用 Jquery 并添加 $("#play").click(function() $("body").append(""); ) 但是,第二个文件没有声音。 【参考方案1】:

执行此操作时,您的按钮仍然可以使用。您可以添加一个事件监听器来检查 te &lt;audio&gt; 元素是否结束播放。然后您只需设置下一个源并重新开始播放。 (顺便说一句,你最好不要使用内联 javacript 和旧的 html 样式(我的意思是 之类,只使用 CSS))

以下所有代码都在this jsfiddle

JS:

player = document.getElementById('batmansong1');
player.addEventListener('ended', function () 
    if (player.src == 'link/to/your/next/file.m4a') return; //check if we have already set the new src, as this function is called EVERY TIME your audio file ends.
    player.src = 'link/to/your/next/file.m4a';
    player.play();
);

document.getElementById('pause').addEventListener('click', function () 
    document.getElementById('batmansong1').pause();
);
document.getElementById('play').addEventListener('click', function () 
    document.getElementById('batmansong1').play();
);

HTML:

<audio id="batmansong1" src="Songs/nanananabatman.m4a"></audio>
<button id="play">
    <img src="Buttons/play.jpg" />
</button>
<button id="pause">
    <img src="Buttons/pause.jpg" />
</button>

CSS:

img 
    width:40px;
    height:40px;

如果您想了解其他任何信息,请随时提问!

【讨论】:

【参考方案2】:
//It should work for html 5 surpport browsers

function htmlfiveMedia()
    document.getElementById('player').play();



//in your html
<audio id="player" src="../jizadmin/sounds/new_message.wav"></audio>


OR

IF THE BROWSER DOES NOT SUPPORT AUDIO TAG TRY THIS BELOW

//This function is going to play sound
function explorerMedia()

    $('embed').remove();

    $("<embed src='../jizadmin/sounds/new_message.wav' autostart='true' hidden='true' height='1' width='1'>").insertAfter('hr');




//add an <hr> below your page

Hope this would help

【讨论】:

我没有使用嵌入,我使用的是 和 好的,抱歉。只需将其添加到此处,以防您使用旧式浏览器

以上是关于Javascript/html 音频问题的主要内容,如果未能解决你的问题,请参考以下文章

如何通过 javascript/html5 播放 wav 音频字节数组?

从 javascript/html 播放音频时设置自定义元数据(控制中心 iOS)

Javascript / HTML5 - 用于网络桌面/移动应用程序的音频流录制

处理器音频 JavaScript HTML5

我应该如何使用 JavaScript/HTML5 处理繁重的音频负载?

javascript + html5音频播放器cors不播放动态源