感谢您查看我的问题。我遇到阻止音频元素的绊脚石,我希望得到一些帮助。我正在使用参数动态创建音频元素,如下所示。
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菜鸟,我确定这是一个新手的错误,但我做错了什么?
非常感谢你。
答案 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();
}