programing

HTML5 오디오 재생 여부 확인?

elecom 2023. 11. 4. 09:52
반응형

HTML5 오디오 재생 여부 확인?

html5 오디오 요소가 현재 재생되고 있는지 확인하기 위한 javascript api는 무엇입니까?

function isPlaying(audelem) { return !audelem.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.

}

이 스레드에 정말 늦었지만 이 구현을 사용하여 사운드가 재생되는지 확인합니다.

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();
     }
}

이 코드가 작동할 수 있을지 궁금했는데 놀랍게도 이렇게 되었습니다.

if (a.paused == false) {
/*do something*/
}

또는 다음과 같이 쓸 수 있습니다.

if (!a.paused == true) {
/*do something*/
}

Jsfiddle에서 IDE가 당신을 짜증나게 하고 싶다면.

온플레이 이벤트를 이용하시면 됩니다.

var audio = document.querySelector('audio');
audio.onplay = function() { /* do something */};

아니면

var audio = document.querySelector('audio');
audio.addEventListener('play', function() { /* do something */ };

다음 코드를 사용해 보십시오.

    var myAudio = document.getElementById("audioFile"); 

    function playAudio() { 
          //audio.play(); 
          //console.log(audio.play())
           if (myAudio.paused && myAudio.currentTime >= 0 && !myAudio.started) {
         myAudio.play();
         console.log("started");
     } else {
         myAudio.pause();
     }
}

오디오 재생이 정말 시작되는지 확인하려면, 특히 스트림이 있는 경우 확인해야 합니다.audio.played.length로.1. 오디오가 진짜 시작음일 경우에만 1이 됩니다.그렇지 않으면.0. 이것은 해킹에 가깝지만 사파리나 크롬과 같은 모바일 브라우저에서도 여전히 작동합니다.

이런식으로 합니다.

    <button id="play">Play Sound</button>
<script>
    var sound = new Audio("path_to_sound.mp3")
    sound.loop = false;
    var play = document.getElementById("play")
    play.addEventListener("click", () => {
        if (!isPlaying()) {
            sound.play()
        } else {
            //sound.pause()  
        }
    })

    function isPlaying() {
        var infoPlaying = false
        var currentTime = sound.currentTime == 0 ? true : false
        var paused = sound.paused ? true : false
        var ended = !sound.ended ? true : false
        var readyState = sound.readyState == 0 ? true : false
        if (currentTime && paused && ended && readyState) {
            infoPlaying = true
        } else if (!currentTime && !paused && ended && !readyState) {
            infoPlaying = true
        }
      return infoPlaying
    }
</script>

오디오 일시 중지 버튼 재생을 위해 사용합니다.

    var audio=$("audio").get[0];
    if (audio.paused || audio.currentTime == 0 || audio.currentTime==audio.duration){
//audio paused,ended or not started
            audio.play();
        } else {
//audio is playing
            audio.pause();
        }

나는 이 jquery code를 사용하고 있고 tow button play and stop, play button은 play and pouse button입니다.

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보다 작으면 재생 중이며, 그렇지 않으면 중지됩니다.

언급URL : https://stackoverflow.com/questions/9437228/html5-check-if-audio-is-playing

반응형