এইচটিএমএল 5 অডিও বাজছে কিনা তা পরীক্ষা করে দেখুন?


উত্তর:


152
function isPlaying(audelem) { return !audelem.paused; }

অডিও ট্যাগের একটি pausedসম্পত্তি রয়েছে। যদি এটি বিরতি না দেওয়া হয়, তবে এটি খেলছে।


যেহেতু কোনও স্টপ নেই, এটি একটি পরিষ্কার সমাধান।
টড মূসা

11
যদি এটি কখনও শুরু না হয়?
হ্যারি

30
এটি ভুল উত্তর। আমি কেবল এটি নিয়ে কাজ করছি, এবং প্রথম শুরুর আগে। বিরতি দেওয়া মিথ্যা।
টমাস

2
@ টম আপনার কাছে জেসবিন আছে? আমি এটি চেষ্টা করেছিলাম এবং এটি সঠিক উত্তর বলে মনে হচ্ছে।
হ্যারি

3
@ হ্যারি আমি এটির সাথে আরও খেলছিলাম এবং দেখে মনে হচ্ছে কিছু ব্রাউজারে এটি কাজ করে এবং এটি কিছু না। আমার ধারণা এটি বাস্তবায়নের উপর নির্ভর করে। তবে ক্রোম এবং ফায়ারফক্সের সর্বশেষ আপডেটের জন্য এটি কাজ করে বলে মনে হচ্ছে, তাই সর্বশেষ বাস্তবায়নের জন্য এই উত্তরটি সঠিক।
টমাস

44

আপনি সময়কাল পরীক্ষা করতে পারেন। সময়কাল 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.

}

2
ব্যক্তিগতভাবে আমি বিশ্বাস করি যে !myAudio.paused||!myAudio.currentTimeএটি আরও ভাল কাজ করবে।
m93a

11
@ m93a মানে না !myAudio.paused || myAudio.currentTime?
ম্যালকমমিশন

5
হ্যাঁ, হওয়া উচিত !myAudio.paused || myAudio.currentTime। কখনও জবাব
দেয়নি

16

যদিও আমি এই থ্রেডটিতে সত্যই দেরি করেছি, আমি শব্দটি বাজছে কিনা তা নির্ধারণের জন্য এই প্রয়োগটি ব্যবহার করি:

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


লক করার সময় অডিওর আইওএস দ্বারা স্বয়ংক্রিয়ভাবে বিরতি দেওয়া থাকলে কাজ করে না।
shukshin.ivan

13
document.getElementsByTagName('audio').addEventListener('playing',function() { myfunction(); },false); 

কৌতুক করা উচিত।


5

এই ফাংশন চেষ্টা করুন! পজিশনের শুরু বা শেষ হলে অডিও প্লেিং কার্যকর করা হবে না

function togglePause() {
     if (myAudio.paused && myAudio.currentTime > 0 && !myAudio.ended) {
         myAudio.play();
     } else {
         myAudio.pause();
     }
}

0

অডিওটি সত্যিই বাজানো শুরু হয়েছে কিনা তা খতিয়ে দেখার জন্য, বিশেষত আপনার কাছে যদি একটি স্ট্রিম থাকে তবে তা পরীক্ষা audio.played.lengthকরা দরকার 1। অডিওটি যদি সত্যিই শব্দের শুরু হয় তবে এটি 1 হবে। অন্যথায় হবে 0। এটি আরও অনেকটা হ্যাকের মতো, তবে এটি এখনও সাফারি এবং ক্রোমের মতো মোবাইল ব্রাউজারগুলিতেও কাজ করে।


0

আপনি অনপ্লে ইভেন্টটি ব্যবহার করতে পারেন।

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

অথবা

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

0

এই 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
});

-2

যদিও আইপ্লেিং বা অনুরূপ কিছু নামে পরিচিত কোনও পদ্ধতি নেই তবে এটি সম্পাদন করার কয়েকটি উপায় রয়েছে।

অডিওটি চলমান থাকায় এই পদ্ধতিটি%% অগ্রগতি অর্জন করে:

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 এরও কম হয়, এটি খেলছে, অন্যথায় এটি বন্ধ হয়ে যায়।


এরম, আমি যদি অডিওকে মাঝখানে থামি?
নীট দ্য ডার্ক আবসোল

1
তাহলে এটি খেলবে না।
টড মূসা

এটি কেবল বাফার করা পরিমাণটি সনাক্ত করে। উদাহরণস্বরূপ, অডিও উপাদানটি ডেটা বাফার করতে শুরু করেছে তবে পর্যাপ্ত ডেটা না থাকায় প্লে করা শুরু করেনি, এই পদ্ধতিটি এখনও সত্যটিতে ফিরে আসতে পারে। অথবা যদি উপাদানটি প্লেব্যাকের অংশ হিসাবে ডেটা বাফার করে এবং পরবর্তীকালে বিরতি দেওয়া হয়েছিল।
ধেসান

এলিটমেন্টবাইটাগনাম ('মাইভিডিও') পাবেন? আমি মনে করি এটি এলিটমেন্টবিআইডি ('মাইভিডিও') হওয়া উচিত
ভাগ্যবান সনি

2
এম ... কেন মিনেজ করছ? একটি দুর্দান্ত ধারণা, খারাপ লেখা যদিও। রিয়েলটাইম অডিও (ওয়েবআরটিসি)। বিরতি দিয়ে খেলছে কিনা তা আপনি কীভাবে পরীক্ষা করতে পারেন? কেবল বাফার চেকিংয়ের সাথে। মিনিজিংয়ের উপযুক্ত নয়। আমি upvote।
igorpavlov
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.