繁体   English   中英

如何检查声音文件是否正在JavaScript中播放

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM