[英]How to check whether a sound file is playing in JavaScript
var soundObject = null;
function PlaySound() {
var textvalue = document.getElementById('<%= TextBox7.ClientID %>').value;
if (soundObject != null) {
document.body.removeChild(soundObject);
soundObject.removed = true;
soundObject = null;
}
soundObject = document.createElement("embed");
soundObject.setAttribute("src", textvalue);
soundObject.setAttribute("hidden", false);
soundObject.setAttribute("autostart", true);
document.getElementById("div1").appendChild(soundObject);
上面是我的JavaScript代码,C#中的TextBox7.text =“ c:\\ temp \\ abc.wav”。 我有两个问题:1.在播放音频文件之前,是否总有一个文件c:\\ temp \\ abc.wax是否存在? 2.如何检查文件是否开始播放(自启动自动启动以来)?
我的意图是警告用户文件是否不存在或无法播放?
PS:实际上,该程序正在运行,如果文件存在,它将播放音频,如果找不到音频文件,则会显示黑屏。 我只是想使其更好,以便用户知道发生了什么。
<embed>
元素不能为您提供对正在播放的音频文件的控制级别。 如果可以的话,我强烈建议您改用HTML5 <audio>
元素。 它继承自HTMLMediaElement
Dom接口,使您可以访问更多特定于媒体的数据。 <embed>
元素仅从HTMLElement
继承, HTMLElement
没有提供相同级别的控制。
您可以将上面的代码更改为:
soundObject = new Audio();
soundObject.src = textValue;
soundObject.hidden = true;
soundObject.autoplay = true;
document.getElementById("div1").appendChild(soundObject);
soundObject.play();
一旦执行此操作,如果在播放时出现错误,则可以使用soundObject.error
来访问错误消息。 如果文件不存在或播放过程中出现任何其他错误,则会给您一个错误。
要判断文件是否正在播放,您可以监视soundObject.played
以查看文件的哪一部分已经被播放。
希望这可以为您解决问题!
编辑:
我附上一个的jsfiddle,希望能为您提供如何使用此功能的更好的想法在这里 。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.