javascript api สำหรับตรวจสอบว่าองค์ประกอบเสียง html5 กำลังเล่นอยู่หรือไม่
javascript api สำหรับตรวจสอบว่าองค์ประกอบเสียง html5 กำลังเล่นอยู่หรือไม่
คำตอบ:
function isPlaying(audelem) { return !audelem.paused; }
แท็กเสียงมีpaused
คุณสมบัติ หากไม่หยุดชั่วคราวแสดงว่ากำลังเล่น
คุณสามารถตรวจสอบระยะเวลา กำลังเล่นหากระยะเวลามากกว่า 0 วินาทีและไม่ได้หยุดชั่วคราว
var myAudio = document.getElementById('myAudioID');
if (myAudio.duration > 0 && !myAudio.paused) {
//Its playing...do your job
} else {
//Not playing...maybe paused, stopped or never played.
}
!myAudio.paused||!myAudio.currentTime
จะทำงานได้ดีขึ้น
!myAudio.paused || myAudio.currentTime
?
!myAudio.paused || myAudio.currentTime
ใช่ควรจะเป็น ไม่เคยตอบกลับดูเหมือนว่า ...
ในขณะที่ฉันมาสายจริงๆฉันใช้การใช้งานนี้เพื่อดูว่าเสียงกำลังเล่นอยู่หรือไม่:
service.currentAudio = new Audio();
var isPlaying = function () {
return service.currentAudio
&& service.currentAudio.currentTime > 0
&& !service.currentAudio.paused
&& !service.currentAudio.ended
&& service.currentAudio.readyState > 2;
}
ผมคิดว่าส่วนใหญ่ของธงในองค์ประกอบเสียงที่ชัดเจนนอกเหนือจากรัฐพร้อมที่ซึ่งคุณสามารถอ่านข้อมูลเกี่ยวกับที่นี่: MDN HTMLMediaElement.readyState
document.getElementsByTagName('audio').addEventListener('playing',function() { myfunction(); },false);
ควรทำเคล็ดลับ
ลองฟังก์ชั่นนี้! การเล่นเสียงจะไม่ดำเนินการหากตำแหน่งนั้นเป็นจุดเริ่มต้นหรือจุดสิ้นสุด
function togglePause() {
if (myAudio.paused && myAudio.currentTime > 0 && !myAudio.ended) {
myAudio.play();
} else {
myAudio.pause();
}
}
เพื่อตรวจสอบว่าเสียงที่เป็นจริงที่เริ่มเล่นโดยเฉพาะอย่างยิ่งถ้าคุณมีกระแสจำเป็นต้องตรวจสอบไปaudio.played.length
1
จะเป็น 1 ก็ต่อเมื่อเสียงเริ่มดังขึ้นจริงๆ 0
มิฉะนั้นจะเป็น มันเหมือนกับการแฮ็ก แต่ก็ยังใช้งานได้แม้ในเบราว์เซอร์มือถือเช่น Safari และ Chrome
คุณสามารถใช้เหตุการณ์ onplay
var audio = document.querySelector('audio');
audio.onplay = function() { /* do something */};
หรือ
var audio = document.querySelector('audio');
audio.addEventListener('play', function() { /* do something */ };
ฉันใช้รหัส jquery นี้กับปุ่มลากเพื่อเล่นและหยุดปุ่มเล่นคือปุ่มเล่นและเล่น
const help_p = new Audio("audio/help.mp3");//Set Help Audio Name
$('#help_play').click(function() {//pause-Play
if (help_p.paused == false) {
help_p.pause();//pause if playing
} else {
help_p.play();//Play If Pausing
}
});
$('#help_stop').click(function() {//Stop Button
help_p.pause();//pause
help_p.currentTime = 0; //Set Time 0
});
แม้ว่าจะไม่มีวิธีใดที่เรียกว่า isPlaying หรือสิ่งที่คล้ายกัน แต่ก็มีสองสามวิธีที่จะทำให้สำเร็จได้
วิธีนี้จะได้รับ% ของความคืบหน้าเมื่อเล่นเสียง:
function getPercentProg() {
var myVideo = document.getElementById('myVideo');
var endBuf = myVideo.buffered.end(0);
var soFar = parseInt((endBuf / myVideo.duration) * 100);
document.getElementById('loadStatus').innerHTML = soFar + '%';
}
ถ้าเปอร์เซ็นต์มากกว่า 0 และน้อยกว่า 100 แสดงว่ากำลังเล่นมิฉะนั้นจะหยุด