两层原因都修:
1. 微信限制(声明后台音频权限):
InnerAudioContext 默认在小程序进后台时被强制暂停。
必须显式声明 requiredBackgroundModes,iOS 才允许后台继续发声。
- manifest.json mp-weixin 全局加 requiredBackgroundModes:["audio"]
- pages.json 节拍器页 style 也加,双保险
说明:Android 大部分情况无需此声明也能后台,iOS 必需。
2. 代码层(onHide 不再主动 stop):
原 onHide 里 if(isPlaying) stop() 会在切后台/小窗时
立刻把节拍器自己关掉,跟需求相反。
新策略:
- onHide 留空 → 切后台/小窗时节拍器继续工作
- onUnmounted 才真正 stop + 释放屏幕常亮 → 用户主动离开
节拍器页(navigateBack/重启)时清理资源
实际场景:健走时把手机塞口袋,锁屏或切到微信聊天,
节拍声依然继续响,无需把手机一直拿着看。
Co-authored-by: Cursor <cursoragent@cursor.com>
78 lines
2.9 KiB
JSON
78 lines
2.9 KiB
JSON
{
|
|
"name" : "uniapp-callkit-vue3",
|
|
"appid" : "__UNI__5205699",
|
|
"description" : "",
|
|
"versionName" : "1.0.0",
|
|
"versionCode" : "100",
|
|
"transformPx" : false,
|
|
/* 5+App特有相关 */
|
|
"app-plus" : {
|
|
"usingComponents" : true,
|
|
"nvueStyleCompiler" : "uni-app",
|
|
"compilerVersion" : 3,
|
|
"splashscreen" : {
|
|
"alwaysShowBeforeRender" : true,
|
|
"waiting" : true,
|
|
"autoclose" : true,
|
|
"delay" : 0
|
|
},
|
|
/* 模块配置 */
|
|
"modules" : {},
|
|
/* 应用发布信息 */
|
|
"distribute" : {
|
|
/* android打包配置 */
|
|
"android" : {
|
|
"permissions" : [
|
|
"<uses-permission android:name=\"android.permission.CHANGE_NETWORK_STATE\"/>",
|
|
"<uses-permission android:name=\"android.permission.MOUNT_UNMOUNT_FILESYSTEMS\"/>",
|
|
"<uses-permission android:name=\"android.permission.VIBRATE\"/>",
|
|
"<uses-permission android:name=\"android.permission.READ_LOGS\"/>",
|
|
"<uses-permission android:name=\"android.permission.ACCESS_WIFI_STATE\"/>",
|
|
"<uses-feature android:name=\"android.hardware.camera.autofocus\"/>",
|
|
"<uses-permission android:name=\"android.permission.ACCESS_NETWORK_STATE\"/>",
|
|
"<uses-permission android:name=\"android.permission.CAMERA\"/>",
|
|
"<uses-permission android:name=\"android.permission.GET_ACCOUNTS\"/>",
|
|
"<uses-permission android:name=\"android.permission.READ_PHONE_STATE\"/>",
|
|
"<uses-permission android:name=\"android.permission.CHANGE_WIFI_STATE\"/>",
|
|
"<uses-permission android:name=\"android.permission.WAKE_LOCK\"/>",
|
|
"<uses-permission android:name=\"android.permission.FLASHLIGHT\"/>",
|
|
"<uses-feature android:name=\"android.hardware.camera\"/>",
|
|
"<uses-permission android:name=\"android.permission.WRITE_SETTINGS\"/>"
|
|
]
|
|
},
|
|
/* ios打包配置 */
|
|
"ios" : {},
|
|
/* SDK配置 */
|
|
"sdkConfigs" : {}
|
|
}
|
|
},
|
|
/* 快应用特有相关 */
|
|
"quickapp" : {},
|
|
/* 小程序特有相关 */
|
|
"mp-weixin" : {
|
|
"appid" : "wx79b9a0bfbfe7cbcd",
|
|
"setting" : {
|
|
"urlCheck" : false
|
|
},
|
|
"optimization" : {
|
|
"subPackages" : true
|
|
},
|
|
"usingComponents" : true,
|
|
/* 节拍器后台播放需要,iOS 必需 */
|
|
"requiredBackgroundModes" : ["audio"]
|
|
},
|
|
"mp-alipay" : {
|
|
"usingComponents" : true
|
|
},
|
|
"mp-baidu" : {
|
|
"usingComponents" : true
|
|
},
|
|
"mp-toutiao" : {
|
|
"usingComponents" : true
|
|
},
|
|
"uniStatistics" : {
|
|
"enable" : false
|
|
},
|
|
"vueVersion" : "3"
|
|
}
|