2013-08-31 4 views
1

Je construis un site Web spécifiquement accessible via le navigateur Chrome sur un appareil Android, c'est donc le seul navigateur qui me convient pour que mon code fonctionne.Lecture audio via javascript et navigateur Android

Je voudrais être capable de jouer un son en cliquant sur un objet. Mais à partir de maintenant, il est tellement lent à répondre et le son ne peut que suivre si je clique dessus une fois toutes les 4 ou 5 secondes. J'aimerais pouvoir taper rapidement et faire en sorte que le son continue.

Quelle est la meilleure façon de lire de l'audio (fichier wav) via javascript pour le faire fonctionner correctement avec Chrome sur une tablette Android?

J'utilise actuellement <audio> tags, puis javascript pour lire le fichier. (Le navigateur Chrome sur mon ordinateur fonctionne correctement et la vitesse du son est correcte, mais sur la tablette Android, le son est péniblement retardé. , sur la tablette).

Mon code actuel

Juste en dessous de mon <body> tag:

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

Lorsque l'utilisateur appuie sur l'écran

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

pouvez-vous envoyer votre code actuel? – FoamyGuy

Répondre

0

La plupart des navigateurs mobiles ne preload pas l'audio/vidéo pour économiser la bande passante .

L'attribut préchargé est pris en charge dans Safari 5.0 et versions ultérieures. Safari sur iOS ne précharge jamais.

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

+1

Il a dit qu'il utilise Chrome dans Android, pas Safari dans iOS. –