2014-01-18 4 views
1

Спасибо, что узнал мой вопрос. Я сталкиваюсь с камнем преткновения, останавливающим звуковой элемент, и я надеюсь получить некоторую помощь. Я динамически создаю звуковые элементы с аргументами, например.Остановка аудио-элемента по ID

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, и я уверен, что это ошибка новобранец, но что я делаю неправильно?

спасибо, что заранее.

ответ

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/

+0

Спасибо, кучка. Я даже не регистрировался, что на самом деле нет элемента для поиска. – user3152117

0

я заметил, что вы не прикрепили аудио объекта в DOM/документ. Это приводит к тому, что document.getElementByID не сможет найти элемент. самый простой способ остановить воспроизведение аудиофайла - сохранить ссылку на созданный аудио-объект.

var audioControl; 

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

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

Это также отличное решение. Огромное спасибо. – user3152117

+0

@ user3152117, пожалуйста, не забывайте поднимать и отмечать это как ответ. :) tnx –

+1

Я бы поднял голову, если бы у меня была репутация. Я буквально только что запустил javascript в этом месяце. – user3152117

Смежные вопросы