Answers:
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;
}
我认为audio元素上的大多数标志都很明显,除了可以在这里阅读的ready状态:MDN HTMLMediaElement.readyState。
试试这个功能!如果位置是开始或结束,则不会执行音频播放
function togglePause() {
if (myAudio.paused && myAudio.currentTime > 0 && !myAudio.ended) {
myAudio.play();
} else {
myAudio.pause();
}
}
要检查是否音频真正开始播放,特别是如果你有一个流,需要检查audio.played.length
到1
。仅当音频确实是开始声音时才为1。否则会的0
。它更像是一种骇客,但即使在Safari和Chrome等移动浏览器中仍然可以使用。
我正在使用此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,则表示正在播放,否则停止。