2016-07-18 10 views
0

カウントダウン後に.oggファイルを再生するスクリプトがあります。ファイルのサイズを考えると、カウントダウン終了後に再生するファイルは約16kbです。スクリプトはうまくいくように見え、デスクトップブラウザではうまくいきますが、Android端末では16kbのoggファイルは再生されません。私は問題が何かを理解することができません。 onClickを再生する別のoggファイルがあり、それは問題なくAndroidブラウザで再生されるため、ファイル形式が当てはまるとは思わない。コードを確認してください。Javascript - AndroidデバイスでHTML5オーディオが再生されない

var clickTimer; 
 

 
$("#startClock").click(function(){ 
 
    var pose = document.getElementById("pose"); 
 
    if (clickTimer) { 
 
     clearInterval(clickTimer); 
 
    } 
 
    var counter = document.getElementById('minutes').value; 
 
    clickTimer = setInterval(function() { 
 
    counter--; 
 
     if (counter >= 0) { 
 
     span = document.getElementById("count"); 
 
     span.innerHTML = counter; 
 
     } 
 
     if (counter === 0) { 
 
     span = document.getElementById("count"); 
 
     pose.play(); 
 
       } 
 
    }, 1000); 
 

 

 
});
<script type='text/javascript' src='http://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js?ver=4.1'></script> 
 

 
<audio id="pose" src="https://dl.dropboxusercontent.com/u/38489556/changepose.ogg" ></audio> 
 

 
<div id="count">0</div> 
 

 
<div id="min">Mins</div> 
 
    <select id="minutes"> 
 
    <option value="6" selected="selected">1</option> 
 
    </select> 
 
<button id=startClock >Start</button>

+1

再生メディアは、click()のようなユーザー操作の結果である必要があります – dandavis

+0

これはAndroid搭載端末固有のものですか?これはデスクトップ上で正常に再生され、主な目的は、自動的に発生する必要があるタイマーがアップしていることをユーザーに知らせることです。 –

+0

はい、それはおそらくCPU /バッテリーの寿命を節約するためにモバイルに関する新しい方針です。たとえば、ユーザーがオーディオタグを再生すると、「コントロール」を使用して、介入なしで再度タグを再生できます。 – dandavis

答えて

0

私はこの解決策を考え出しました。以下は、同様の問題に直面した場合のコードです。

var clickTimer; 
 

 
$("#startClock").click(function(){ 
 
    var pose = 
 
      document.getElementById("pose").play(); 
 
      document.getElementById("pose").pause(); 
 
    if (clickTimer) { 
 
     clearInterval(clickTimer); 
 
    } 
 
    var counter = document.getElementById('minutes').value; 
 
    clickTimer = setInterval(function() { 
 
    counter--; 
 
     if (counter >= 0) { 
 
     span = document.getElementById("count"); 
 
     span.innerHTML = counter; 
 
     } 
 
     if (counter === 0) { 
 
     span = document.getElementById("count"); 
 
     document.getElementById("pose").play(); 
 
       } 
 
    }, 1000); 
 

 

 
});
<script type='text/javascript' src='http://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js?ver=4.1'></script> 
 

 
<audio id="pose" src="https://dl.dropboxusercontent.com/u/38489556/changepose.ogg" ></audio> 
 

 
<div id="count">0</div> 
 

 
<div id="min">Mins</div> 
 
    <select id="minutes"> 
 
    <option value="6" selected="selected">1</option> 
 
    </select> 
 
<button id=startClock >Start</button>

お時間をいただき、ありがとうございます!

+0

解決策が単なるコードとは何かを述べると役に立ちます。 –

関連する問題