【发布时间】:2015-12-02 04:32:40
【问题描述】:
我正在制作一个音乐播放页面,我在其中使用SoundManager 2 for 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 for android 上出现错误:
Failed to execute 'play' on 'HTMLMediaElement': API can only be initiated by a user gesture.
如果一首歌曲从一开始就有一个 URL 并且不使用异步加载,则不会发生这种情况。
有什么解决办法吗?
【问题讨论】:
-
这是关于此主题的 Chrome 问题 - bugs.chromium.org/p/chromium/issues/detail?id=178297
标签: javascript android angularjs google-chrome soundmanager2