【问题标题】:How to play audio using setTimeout on mobile devices?如何在移动设备上使用 setTimeout 播放音频?
【发布时间】:2016-07-22 16:02:48
【问题描述】:

我正在尝试使用 jQuery 的函数 setTimeout() 在移动设备上播放 HTML5 音频元素(在三星 Galaxy Tab 4 和手机上测试),但没有任何反应。如果我从 setTimeout 函数中删除 audio.play() ,则声音播放正常。

我不得不说,在台式机和笔记本电脑上都可以正常工作。

为什么这在移动设备上不起作用:

var audio = document.getElementById('audio_1');
setTimeout(function() {
  audio.play();
}, 3000);

【问题讨论】:

  • 这是对大多数移动设备 AFAIK 的限制,您无法在没有任何用户交互的情况下启动媒体
  • 好的,我明白了。但是这里有什么选择呢?我能做什么?
  • 未经我测试,但尝试将元素动态添加到 DOM
  • @LGSon,试过了。不工作。
  • 好的,然后作为 A。沃尔夫写道,你根本做不到

标签: javascript jquery


【解决方案1】:

我将在底部回答我的问题。在 cmets A. Wolff 和 LGSong 中说这不可能是我想要达到的目标,但我想到了一个解决我问题的肮脏技巧。我开始了,然后在 setTimeout 函数之前立即暂停了音频,然后一切正常。就是这样,希望将来也能对某人有所帮助:

var audio = document.getElementById('audio_1');
audio.play();
audio.pause();
setTimeout(function() {
  audio.play();
}, 3000);

【讨论】:

    猜你喜欢
    • 2017-07-27
    • 1970-01-01
    • 1970-01-01
    • 2013-09-24
    • 1970-01-01
    • 1970-01-01
    • 2017-09-30
    • 2018-08-31
    • 1970-01-01
    相关资源
    最近更新 更多