Tworzę stronę z muzyką, na której używam SoundManager 2 for AngularJs. Używam zdalnego interfejsu API, aby uzyskać URL utworu do odtworzenia. I wzmocnione procedurę obsługi zdarzenia kliknięcia kątowe-soundmanager2:Nie można wykonać "odtwarzania" w "HTMLMediaElement": interfejs API może zostać zainicjowany tylko gestem użytkownika.
element.bind('click', function() {
if (angular.isFunction(scope.loadFunction)) {
scope.loadFunction(scope.song, function() {
$log.debug('adding song to playlist');
addToPlaylist(scope.song.playDetails);
})
} else {
$log.debug('adding song to playlist');
addToPlaylist(scope.song);
}
});
Gdzie dodaną część, która wywołuje scope.loadFunction(song,callback)
i po to funkcja wczytuje piosenkę URL wywołuje wywołania zwrotnego, uzyskując kontrolę z powrotem do kątowego-soundmanager2.
Problem polega na tym, że w Chrome na Androida pojawia się błąd:
Failed to execute 'play' on 'HTMLMediaElement': API can only be initiated by a user gesture.
nie stanie, jeśli utwór ma URL od początku i async załadunku nie jest używany.
Czy są jakieś obejścia tego problemu?
Oto kwestia Chrome na ten temat - https://bugs.chromium.org/p/chromium/issues/detail?id=178297 –