2017-09-29 6 views
0

J'essaie de lancer automatiquement le prochain élément audio à partir d'un autre et de déclencher le problème.L'événement Android Chrome ne fonctionne pas

L'idée est que j'ai affecté une fonction à l'événement "onplay" de chaque élément audio. Cette fonction obtient l'objet (this) de l'élément cliqué, vérifie certaines conditions, lance la fonction suivante et passe plus loin l'objet (this) de l'élément cliqué.

function clickWrapper(triggeredObject) { 
    if (mode == 'normal') { 
     triggeredObject.onended = function() {playNextSong(triggeredObject) 
    } 
} 

La fonction suivante tente d'obtenir l'identifiant de l'élément suivant, et s'assignez à l'événement « onended » de cet élément suivant audio pour obtenir le jeu récursif de tous les éléments.

function playNextSong(NowPlayingSong) { 
    var nextSongId; 
     for (i = 0; i < playlist.length; i++) { 
      if (playlist[i] == NowPlayingSong.id) { 
       nextSongId = playlist[i+1]; 
      }; 
     }; 
    var nextSong = document.getElementById(nextSongId); 
    nextSong.play(); 
    nextSong.onended = function() {playNextSong(this)}; 
} 

Sur PC, le code suivant fonctionne comme prévu. Mais la question est de savoir comment le faire fonctionner sur Android Chrome! Parce que ça ne déclenche tout simplement pas ces événements à mon avis.

Peut-être que toute la «solution» est erronée, mais je ne sais pas comment obtenir un plaquage récursif de tous les éléments audio d'une page.

Vous pouvez tester ce code sur novk.tk/audio

Répondre

0

Got it. C'est une fonctionnalité "contrôle utilisateur".

https://bugs.chromium.org/p/chromium/issues/detail?id=178297

Pour, dire un joueur, une fois que nous avons besoin utilisateur a cliqué - obtenir et maintenir cet événement dans js et non perdre. faire tout seul avec un seul flux de programme sans autres interactions html-elements. Si triste. :(

mon concept entier va en enfer