11486 sujets

JavaScript, DOM et API Web HTML5

Bonjour,

Je suis actuellement en train de coder une page web qui contient une balise <audio>.

La mise à jour du "src" de la balise se fait de la manière suivante:
1. La balise audio est arrivé au bout de la lecture
2. Le navigateur exécute une requête ajax.
3. Le serveur démarre une analyse et retourne le chemin du prochain fichier à écouter
4. La fonction callback de l'ajax, mets a jour le "src" de la balise audio et démarre la lecture.
5. Retour à l'étape 1.
Ainsi, le src de la balise audio, est continuellement mis à jour.

Le programme fonctionne correctement sur ordinateur et téléphone portable.

Cependant, sur les téléphones portable (j'utilise la navigateur Chrome), dès que la page est en background ou lorsque l’écran se met en veille, la balise audio n'est plus du tout mise a jour.

Que se passe-il exactement lorsque l’écran se met en veille? Les requêtes javascript sont bloquées?

Existe-il une solution pour contourner ce problème? Quelle est la bonne manière de procéder? L'utilisation de "Web Worker" ?

Merci par avance,

LL
Modérateur
Bonjour,

Sans être catégorique, je ne pense pas qu'il y ait une restriction sur les requêtes en Javascript en particulier.

Su Androïd, des restrictions sur l'exécution en arrière-plan sont appliquées par l'OS. Ca se règle dans les paramètres de l'appareil.
D'autre part il y a des application (comme Booster) qui appliquent elles aussi des limitations dans le but d'optimiser les performances des applications en premier plan et d'autres dans le but de préserver la batterie.

Face à ces restrictions logicielles tu ne pourras rien faire.

D'autre part il me semble que certains navigateurs, lorsqu'ils sont réduits ou si l'onglet n'est pas actif, réduire la consommation de bande passante et l'usage de la mémoire ram en stoppant les actions en arrière plan.

Sans plus de tests, je pense que tu es confronté à l'un de ces cas.
Bonjour,

Merci pour cette réponse.
Finalement, en utilisant l'API "Audio web API", je n'ai plus besoin des balises <audio> et ça fonctionne avec le téléphone en veille.

Par contre, si j'utilise un récepteur bluetooth, la lecture des messages ne fonctionne plus. En utilisant la sotie son du telephone je n'ai pas de problème. Smiley eek

Quelqu'un saurait pourquoi? Comment faut-il faire?

Merci,

LL
Cher LLA,
les smart-phones sont encore de pov's enfants de nos ancestraux ordis !

Mais je gage que dans 2 ou 3 ans les smart's auront davantage grandi ... Et tu es là pour le vouloir : rapproche-toi donc d'Androïd (google) et/ou d'iOs (apple) pour le meilleur à venir.

Or, ce que nos Amis chinois auront créé entretemps méritera ton intérêt : -"Just to perform".
Modifié par pictural (13 Dec 2016 - 01:27)