按ID停止音频元素

时间:2014-01-18 05:45:36

标签: javascript html5 audio

感谢您查看我的问题。我遇到阻止音频元素的绊脚石,我希望得到一些帮助。我正在使用参数动态创建音频元素,如下所示。

var audio = document.createElement("audio");
audio.setAttribute('id', params[0]);

这很好用,params [0]是一个用户参数。我可以提醒audio.id,我得到'backgroundmusic'。 audio.play有效。当我试图阻止它时,问题出现了。

var audio = document.getElementById(params[0]);
audio.pause();

我认为这会有效,但每次都会返回null。我是一个全新的javascript菜鸟,我确定这是一个新手的错误,但我做错了什么?

非常感谢你。

2 个答案:

答案 0 :(得分:1)

创建音频元素后,将其附加到dom中的某个元素。

var audioElement = document.createElement('audio');
    audioElement.setAttribute('src', 'http://home.tiscali.nl/~jvanderw/malaysia02/sounds/greatargus.mp3');
    audioElement.setAttribute('id', "user_id");
    audioElement.load()
$("#audio_div").append(audioElement); 

我创建了一个小提琴,请检查http://jsfiddle.net/QG68M/

答案 1 :(得分:0)

我发现你没有将音频对象附加到DOM / Document。这会导致document.getElementByID在查找元素时失败。停止播放音频文件的最简单方法是保留对您创建的音频对象的引用。

var audioControl;

function CreateAudioElement(params)
{
    audioControl = document.createElement("audio");
    audioControl.setAttribute('id', params[0]);
}

function StopAudioElement()
{
  audioControl.pause();
 }