2016-07-18 4 views
0

У меня есть скрипт, который после обратного отсчета должен воспроизводить файл .ogg. Учитывая размер файлов, тот, который должен играть после окончания обратного отсчета, составляет около 16 КБ. Теперь скрипт выглядит хорошо и хорошо работает в браузере Desktop, но он не будет воспроизводить файл ogg размером 16kb на моем устройстве Android. Я не могу понять, что может быть проблемой. Существует еще один файл ogg, который воспроизводит onClick, и он воспроизводится в браузере Android без каких-либо проблем, поэтому я не думаю, что формат файла имеет значение. Проверьте код.Javascript - HTML5 аудио не воспроизводится на устройстве Android

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

Воспроизводимые носители должны быть результатом действия пользователя, например, щелчком() – dandavis

+0

Это специфично для Android-устройства? Потому что он отлично работает на рабочем столе, и основное намерение - дать пользователю знать, что таймер идет вверх, что должно произойти автоматически. –

+0

Да, это более новая политика на мобильных устройствах, возможно, для экономии времени работы от аккумулятора. как только пользователь воспроизводит звуковой тег, например, с помощью 'control', вы можете снова воспроизвести() тег без вмешательства. – 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

Было бы полезно указать, какое исправление было против простого кода. –

Смежные вопросы