2014-01-18 1 views
1

제 질문을 확인해 주셔서 감사합니다. 나는 오디오 요소를 막는 걸림돌에 빠져 있는데 도움이되기를 바랍니다. 나는 오디오 요소를 동적으로 인수로 만들고있다.오디오 요소를 ID로 중지 중

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

params [0]은 사용자 인수입니다. 나는 오디오에 경고 할 수있다. 예를 들어 '배경 음악'을 얻는다. 그리고 audio.play가 작동합니다. 문제는 내가 멈추려 할 때 온다.

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

나는이 방법이 효과가있을 것이라고 생각했지만 매번 null을 반환합니다. 나는 총 자바 스크립트 신참이야 그리고 이것은 신참 실수라고 확신하지만, 내가 뭘 잘못하고있어?

대단히 감사합니다.

답변

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 upvote를 잊어 버리고 답변으로 표시하지 마십시오. :) tnx –

+1

나 자신의 평판이 있다면 나는 upvote 것입니다. 나는 문자 그대로 방금이 달에 자바 스크립트를 시작했다. – user3152117