我正在制作一个网络聊天应用程序,现在我需要播放通知声音,因为一个新的消息到达。
首先,我使用howler.js来播放声音。在咆哮声中,我们可以开始播放声音,然后如果我们锁定屏幕或更改浏览器选项卡焦点,它就会继续播放。,但是,如果打开选项卡,移动屏幕被锁定,它不会开始播放声音,如果用户在另一个选项卡上,而应用程序在另一个选项卡上,它也不会播放。
因此,基本上我的问题是,是否可以在屏幕锁定时播放声音,或者当用户在另一个选项卡上时开始播放声音?
app.js
var notify_sound = new Howl({
src: ['./assets/sounds/notify2.mp3'],
volume: 1.0
});
.
.
.
.
.
.
.
.
if(type == "user"){
if(userAddress == remoteAddress) {
typing.html('').fadeOut('fast');
messages.append('<li class="self"><p class="message">'+ obj.message + '</p><p class="time">' + time +'</p></li><p class="username_self">' + userAddress + '</p>');
}
else {
typing.html('').fadeOut('fast');
messages.append('<li class="other"><p class="message">'+ obj.message + '</p><p class="time">' + time +'</p></li><p class="username_other">' + userAddress + '</p>');
notify_sound.play();
}
}发布于 2016-08-02 12:46:39
HTML5音频和手机并不是很合得来。Howler.js (如果您使用的是2.0)可以通过将事件处理程序附加到触发回放的第一个触摸事件来获得音频到“自动播放”。如果视图没有活动,就不会有一个触摸事件(甚至是模拟事件)来触发回放。
从医生那里:
移动播放 默认情况下,iOS、Android等上的音频被锁定,直到声音在用户交互中播放,然后正常播放页面会话的其余部分(苹果文档)。howler.js的默认行为是尝试通过在第一个touchend事件上播放一个空缓冲区来悄悄地解锁音频回放。可以通过调用以下命令禁用此行为:
Howler.mobileAutoEnable = false;
如果没有最初的互动,你就无能为力了。
https://stackoverflow.com/questions/38715830
复制相似问题