Safari 不会播放来自 javascript 的音频
Safari won't play audio from javascript
我遇到一个问题,Mac 上的 Safari 在单击按钮时无法播放音频。我知道自动播放已禁用,但这是基于用户操作,所以我真的很困惑。在其他浏览器中播放正常。
在我的网页中,我使用 jquery 来动态构建页面,并且我添加了一个可以播放音频的按钮,如下所示:
var button = $('<button>', {
id: id + '_button',
hidden: 'hidden',
onclick: "preview('" + id + "')"
}).append($('<img>', {
src: 'pb.gif',
alt: 'Preview'
}));
然后在 preview
方法中播放声音。
function preview(rowId) {
var url = 'ajax/preview.php?t=' + ... + '.mp3'; // Long URL build up here
var snd = new Audio();
snd.src = url;
snd.play();
}
奇怪的是,对我来说,单击按钮时声音在 Safari 中播放得很好,但基本上我尝试过的其他人都说没有声音。
如果您的问题与 iPhone 相关,那么我建议检查一次 phone 左上角的静音按钮。
问题最终是服务器将 header 作为 Content-Type: $contentType
发回,而不是扩展该变量。一旦我修复它就开始工作了。
我遇到一个问题,Mac 上的 Safari 在单击按钮时无法播放音频。我知道自动播放已禁用,但这是基于用户操作,所以我真的很困惑。在其他浏览器中播放正常。
在我的网页中,我使用 jquery 来动态构建页面,并且我添加了一个可以播放音频的按钮,如下所示:
var button = $('<button>', {
id: id + '_button',
hidden: 'hidden',
onclick: "preview('" + id + "')"
}).append($('<img>', {
src: 'pb.gif',
alt: 'Preview'
}));
然后在 preview
方法中播放声音。
function preview(rowId) {
var url = 'ajax/preview.php?t=' + ... + '.mp3'; // Long URL build up here
var snd = new Audio();
snd.src = url;
snd.play();
}
奇怪的是,对我来说,单击按钮时声音在 Safari 中播放得很好,但基本上我尝试过的其他人都说没有声音。
如果您的问题与 iPhone 相关,那么我建议检查一次 phone 左上角的静音按钮。
问题最终是服务器将 header 作为 Content-Type: $contentType
发回,而不是扩展该变量。一旦我修复它就开始工作了。