Câu trả lời:
function isPlaying(audelem) { return !audelem.paused; }
Thẻ Âm thanh có một thuộc paused
tính. Nếu nó không bị tạm dừng, thì nó đang phát.
Bạn có thể kiểm tra thời lượng. Nó đang phát nếu thời lượng hơn 0 giây và nó không bị tạm dừng.
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
sẽ làm một công việc tốt hơn.
!myAudio.paused || myAudio.currentTime
không?
!myAudio.paused || myAudio.currentTime
. Có vẻ như không bao giờ trả lời lại ...
Mặc dù tôi thực sự muộn với chủ đề này, tôi sử dụng triển khai này để tìm hiểu xem âm thanh có đang phát hay không:
service.currentAudio = new Audio();
var isPlaying = function () {
return service.currentAudio
&& service.currentAudio.currentTime > 0
&& !service.currentAudio.paused
&& !service.currentAudio.ended
&& service.currentAudio.readyState > 2;
}
Tôi nghĩ rằng hầu hết các cờ trên phần tử âm thanh là rõ ràng ngoài trạng thái sẵn sàng mà bạn có thể đọc tại đây: MDN HTMLMediaElement.readyState .
document.getElementsByTagName('audio').addEventListener('playing',function() { myfunction(); },false);
Nên làm thủ thuật.
Hãy thử chức năng này! Phát âm thanh sẽ không được thực hiện nếu vị trí là đầu hoặc cuối
function togglePause() {
if (myAudio.paused && myAudio.currentTime > 0 && !myAudio.ended) {
myAudio.play();
} else {
myAudio.pause();
}
}
Để kiểm tra xem âm thanh thực sự bắt đầu chơi, đặc biệt là nếu bạn có một dòng suối, cần phải kiểm tra audio.played.length
để 1
. Nó sẽ chỉ là 1 nếu âm thanh thực sự là âm thanh bắt đầu. Nếu không sẽ được 0
. Nó giống như một cuộc tấn công hơn, nhưng nó vẫn hoạt động ngay cả trong các trình duyệt dành cho thiết bị di động, như Safari và Chrome.
bạn có thể sử dụng sự kiện onplay.
var audio = document.querySelector('audio');
audio.onplay = function() { /* do something */};
hoặc là
var audio = document.querySelector('audio');
audio.addEventListener('play', function() { /* do something */ };
đang sử dụng mã jquery này với nút kéo và phát và dừng, nút phát là nút phát và dừng
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
});
Mặc dù không có phương pháp nào được gọi là isPlaying hoặc thứ gì đó tương tự, nhưng có một số cách để thực hiện điều này.
Phương pháp này nhận% tiến độ khi âm thanh đang phát:
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 + '%';
}
Nếu phần trăm lớn hơn 0 và nhỏ hơn 100, nó đang phát, nếu không nó sẽ bị dừng.