2013-08-31 3 views
1

Я создаю веб-сайт специально для доступа через браузер Chrome на устройстве Android, так что это единственный браузер, который мне очень нравится в работе моего кода.Воспроизведение аудио через javascript и Android-браузер

Я хотел бы иметь возможность воспроизводить звук при щелчке по объекту. Но на данный момент SO SO медленно реагирует, и звук может поддерживаться только в том случае, если я нажимаю на него один раз каждые 4 или 5 секунд. Я хотел бы иметь возможность быстро нажимать и поддерживать звук.

Каков наилучший способ воспроизвести аудио (wav-файл) через javascript, чтобы он хорошо работал с Chrome на планшете Android?

В настоящее время я использую <audio> теги, а затем javascript, чтобы воспроизвести файл. (Благодаря браузеру Chrome на моем компьютере он отлично работает и скорость звука в порядке. Но на планшете Android звук болезненно отстает. Как будто звук по какой-то причине не загружается заранее или что-то в этом роде , на планшете).

Мой текущий код

Прямо под моим <body> тег:

<audio id="audiotag1" src="ding.wav" preload="auto"></audio> 

Когда пользователь нажимает на экран

function registerTouch(mouse) { 
    play_multi_sound('audiotag1'); 
} 



var channel_max = 3;          // number of channels 
    audiochannels = new Array(); 
    for (a=0;a<channel_max;a++) {         // prepare the channels 
     audiochannels[a] = new Array(); 
     audiochannels[a]['channel'] = new Audio();      // create a new audio object 
     audiochannels[a]['finished'] = -1;       // expected end time for this channel 
    } 

function play_multi_sound(s) { 
    for (a=0;a<audiochannels.length;a++) { 
     thistime = new Date(); 
     if (audiochannels[a]['finished'] < thistime.getTime()) {   // is this channel finished? 
      audiochannels[a]['finished'] = thistime.getTime() + document.getElementById(s).duration*1000; 
      audiochannels[a]['channel'].src = document.getElementById(s).src; 
      audiochannels[a]['channel'].load(); 
      audiochannels[a]['channel'].play(); 
      break; 
     } 
    } 
} 
+0

Вы можете оставить текущий код? – FoamyGuy

ответ

0

Большинство мобильных браузеров не преднагрузку аудио/видео, чтобы сохранить пропускную способность ,

Атрибут предварительной загрузки поддерживается в Safari 5.0 и более поздних версиях. Safari на iOS никогда не загружается.

http://developer.apple.com/library/safari/documentation/AudioVideo/Conceptual/Using_HTML5_Audio_Video/AudioandVideoTagBasics/AudioandVideoTagBasics.html#//apple_ref/doc/uid/TP40009523-CH2-SW9

+1

Он сказал, что использует Chrome в Android, а не Safari в iOS. –

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