Я создаю страницу для воспроизведения музыки, где я использую SoundManager 2 для AngularJs. Я использую удаленный API, чтобы получить URL-адрес песни. Я улучшил обработчик события angular -soundmanager2:
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);
}
});
Когда я добавил часть, которая вызывает scope.loadFunction(song,callback)
, и после того, как эта функция загрузит URL-адрес песни, он вызывает обратный вызов, чтобы вернуть элемент управления angular -soundmanager2.
Проблема в том, что на chrome для android я получаю сообщение об ошибке:
Failed to execute 'play' on 'HTMLMediaElement': API can only be initiated by a user gesture.
это не происходит, если песня имеет URL-адрес с самого начала, а асинхронная загрузка не используется.
Есть ли какие-нибудь обходные пути?