小程序
小游戏
企业微信
微信支付
扫描小程序码分享
小程序里使用里webview组件,组件里放的网页有背景音乐。当退出小程序时,这个背景音乐还在播放。能否有办法做到,当退出小程序,背景音乐就没有了?
6 个回答
加粗
标红
插入代码
插入链接
插入图片
上传视频
可以在h5的pagehide事件里,暂停音乐
你好,麻烦通过点击下方“反馈信息”按钮,提供出现问题的。
小程序退出是退到后台的 pagehide根本侦听不到
我也遇到了这个问题,ios下关闭小程序还会继续播放视频(其实你下滑状态栏可以看到有视频播放,不关闭会一直播放的),最后用了浏览器的visibilitychange 解决了(后台时暂停播放),具体代码如下。
var
hiddenProperty =
'hidden'
in
document ?
:
'webkitHidden'
'mozHidden'
null;
null
;
if
(hiddenProperty) {
var visibilityChangeEvent = hiddenProperty.replace(/hidden/i, 'visibilitychange');
visibilityChangeEvent = hiddenProperty.replace(/hidden/i,
'visibilitychange'
);
var onVisibilityChange = function() {
onVisibilityChange =
function
() {
if (document[hiddenProperty]) {
(document[hiddenProperty]) {
!MpMovie.video.paused && MpMovie.video.pause();
}
};
document.addEventListener(visibilityChangeEvent, onVisibilityChange);
相关资料
https://developer.mozilla.org/zh-CN/docs/Web/Events/visibilitychange
这个方案可行,还可以在if里面判断重新进入, 如果是暂停状态,则 让其继续播放
微信小程序退出的时候关闭web-view H5的音乐代码如下:
(function () {
(
hidden =
"hidden"
//各个浏览器属性兼容
(hidden
document)
document.addEventListener(
"visibilitychange"
, onchange);
else
((hidden =
"mozHidden"
)
"mozvisibilitychange"
"webkitHidden"
"webkitvisibilitychange"
"msHidden"
"msvisibilitychange"
"onfocusin"
document.onfocusin = document.onfocusout = onchange;
window.onpageshow = window.onpagehide = window.onfocus = window.onblur = onchange;
//主要功能代码
//网页状态改变事件
onchange(evt) {
(document[hidden]) {
$(
'#audio'
).removeClass(
'play'
document.getElementById(
"bgm"
).pause();
// document.title = "false";
{
// alert('显示');
setTimeout(
).addClass(
).play();
// document.title = "true";
},100);
(document[hidden] !== undefined)
onchange({
type: document[hidden] ?
"blur"
"focus"
});
})();
请问使用pagehide问题解决了吗?
你好,怎么解决的
借楼问两个“已解决”的问题:
连续点击video视频列表偶尔会报错
背景音频管理器 backgroundAudioManager遇到的问题求解
关注后,可在微信内接收相应的重要提醒。
请使用微信扫描二维码关注 “微信开放社区” 公众号
可以在h5的pagehide事件里,暂停音乐
小程序退出是退到后台的 pagehide根本侦听不到
我也遇到了这个问题,ios下关闭小程序还会继续播放视频(其实你下滑状态栏可以看到有视频播放,不关闭会一直播放的),最后用了浏览器的visibilitychange 解决了(后台时暂停播放),具体代码如下。
var
hiddenProperty =
'hidden'
in
document ?
'hidden'
:
'webkitHidden'
in
document ?
'webkitHidden'
:
'mozHidden'
in
document ?
'mozHidden'
:
null
;
if
(hiddenProperty) {
var
visibilityChangeEvent = hiddenProperty.replace(/hidden/i,
'visibilitychange'
);
var
onVisibilityChange =
function
() {
if
(document[hiddenProperty]) {
!MpMovie.video.paused && MpMovie.video.pause();
}
};
document.addEventListener(visibilityChangeEvent, onVisibilityChange);
相关资料
https://developer.mozilla.org/zh-CN/docs/Web/Events/visibilitychange
这个方案可行,还可以在if里面判断重新进入, 如果是暂停状态,则 让其继续播放
微信小程序退出的时候关闭web-view H5的音乐代码如下:
(
function
() {
var
hidden =
"hidden"
;
//各个浏览器属性兼容
if
(hidden
in
document)
document.addEventListener(
"visibilitychange"
, onchange);
else
if
((hidden =
"mozHidden"
)
in
document)
document.addEventListener(
"mozvisibilitychange"
, onchange);
else
if
((hidden =
"webkitHidden"
)
in
document)
document.addEventListener(
"webkitvisibilitychange"
, onchange);
else
if
((hidden =
"msHidden"
)
in
document)
document.addEventListener(
"msvisibilitychange"
, onchange);
else
if
(
"onfocusin"
in
document)
document.onfocusin = document.onfocusout = onchange;
else
window.onpageshow = window.onpagehide = window.onfocus = window.onblur = onchange;
//主要功能代码
//网页状态改变事件
function
onchange(evt) {
if
(document[hidden]) {
$(
'#audio'
).removeClass(
'play'
);
document.getElementById(
"bgm"
).pause();
// document.title = "false";
}
else
{
// alert('显示');
setTimeout(
function
() {
$(
'#audio'
).addClass(
'play'
);
document.getElementById(
"bgm"
).play();
// document.title = "true";
},100);
}
}
if
(document[hidden] !== undefined)
onchange({
type: document[hidden] ?
"blur"
:
"focus"
});
})();
请问使用pagehide问题解决了吗?
你好,怎么解决的
借楼问两个“已解决”的问题:
连续点击video视频列表偶尔会报错
背景音频管理器 backgroundAudioManager遇到的问题求解