1
재생 단추와 같은 텍스트 링크 만 사용하여 동일한 웹 페이지에서 오디오 파일 목록을 재생하려고했는데 다음 솔루션을 찾았습니다.이 솔루션은 저에게 정말 완벽합니다. (thanks 이 스크립트에 대한 @linstantnoodles!)이 코드다른 오디오 트랙이 시작되면 하나의 오디오 트랙을 중지하려면 어떻게합니까? (텍스트 링크 만 사용)
<audio id="song1" preload='auto'>
<source src='song1.mp3' type='audio/mp3' />
</audio>
<audio id="song2" preload='auto'>
<source src='song2.mp3' type='audio/mp3' />
</audio>
<a href="javascript:null()" id="song1-control">Listen</a>
<a href="javascript:null()" id="song2-control">Listen</a>
<script type="text/javascript">
// List of audio/control pairs
var playlist = [{
"audio": document.getElementById('song1'),
"control": document.getElementById('song1-control')
}, {
"audio": document.getElementById('song2'),
"control": document.getElementById('song2-control')
}];
for (var i = 0; i < playlist.length; i++) {
var obj = playlist[i];
var audio = obj.audio;
var control = obj.control;
// returns a closure
var listener = function (control, audio) {
return function() {
var pause = control.innerHTML === 'Pause';
control.innerHTML = pause ? 'Listen' : 'Pause';
// Update the Audio
var method = pause ? 'pause' : 'play';
audio[method]();
// Prevent Default Action
return false;
}
};
control.addEventListener("click", listener(control, audio));
}
</script>
내 유일한 문제가 같은 시간에 연주 한 노래가 재생되는, 내가 두 번째 하나를 시작하면 있다는 것입니다. 이 문제를 해결하기 위해 여러 가지 방법을 시도했지만 그 중 아무 것도 작동하지 않았습니다. 어떻게 적응해야합니까? 두 번째가 시작될 때 첫 번째가 일시 중지되거나 중지되도록하려면 어떻게해야합니까? 감사!
감사의! 'pl.audio.stop()'과 함께 작동하지 않았지만'pl.audio.stop();으로 변경했을 때 제대로 작동했습니다. pl.audio.currentTime = 0;'. 유일한 결점은 첫 번째 파일의 textlink-playbutton이 여전히 "일시 중지"로 설정되어 있다는 것입니다. 이전 버튼을 모두 "수신 대기"로 재설정 할 수 있습니까? innerHTML 값을 변경하려고 시도했지만 더 이상 트랙을 일시 중지 할 수 없습니다 ... – modestus
@modestus 모든 답변을 편집했습니다. – Titus
완벽하게 작동합니다. 정말 고마워요! – modestus