Android Chrome onplay活动无效

时间:2017-09-29 03:22:01

标签: javascript android google-chrome html5-audio

我试图从另一个音频元素中自动启动下一个音频元素并遇到麻烦。

我的想法是我分配了一个功能,以及#34; onplay"每个音频元素的事件。此函数获取clicked元素的对象(this),检查某些条件,启动下一个函数并进一步将clicked元素的对象(this)传递给它。

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

下一个功能是尝试获取下一个元素的id,并将自己分配给" onended"下一个音频元素的事件,以实现所有元素的递归播放。

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)};
}

在PC上,下面的代码按预期工作。但问题是如何让它在Android Chrome上运行!因为根据我的意见,它不会触发这些事件。

也许所有&#34;解决方案&#34;是错的,但后来我不知道如何实现页面上所有音频元素的递归格式化。

您可以在novk.tk/audio

上测试此代码

1 个答案:

答案 0 :(得分:0)

知道了。 这是一个“用户控制”功能。

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

要说一个玩家,我们需要一旦用户点击 - 在js中获取并保持此事件而不是松开它。使用单个程序流自行创建所有内容,而无需其他html元素交互。好难过。 :(

我的整个概念都变成了地狱。