|
|
@@ -314,23 +314,64 @@ export const unique = (arr) => {
|
|
|
return arr;
|
|
|
};
|
|
|
|
|
|
-//点击声效 shish
|
|
|
-export const hitRemind = () =>{
|
|
|
+// 点击声效 - 缓存对象,避免重复创建
|
|
|
+let hitAudioContext = null
|
|
|
+let lastHitPlayTime = 0
|
|
|
+const HIT_MIN_INTERVAL = 100
|
|
|
+
|
|
|
+const initHitAudio = () => {
|
|
|
+ if (hitAudioContext) return
|
|
|
try {
|
|
|
- if(uni.getSystemInfoSync().platform != 'windows'){
|
|
|
- const innerAudioContext = uni.createInnerAudioContext()
|
|
|
- innerAudioContext.autoplay = true
|
|
|
- innerAudioContext.src = '/static/hit.mp3'
|
|
|
- innerAudioContext.onPlay()
|
|
|
- innerAudioContext.onError()
|
|
|
- innerAudioContext.onPause(function() {
|
|
|
- innerAudioContext.destroy()
|
|
|
- })
|
|
|
+ if (uni.getSystemInfoSync().platform === 'windows') return
|
|
|
+
|
|
|
+ hitAudioContext = uni.createInnerAudioContext()
|
|
|
+ hitAudioContext.autoplay = false
|
|
|
+ hitAudioContext.src = '/static/hit.mp3'
|
|
|
+ hitAudioContext.volume = 1
|
|
|
+ } catch (e) {
|
|
|
+ console.error('[hitRemind] 初始化失败:', e)
|
|
|
+ hitAudioContext = null
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+export const hitRemind = () => {
|
|
|
+ try {
|
|
|
+ // 防抖:100ms 内只播放一次
|
|
|
+ const now = Date.now()
|
|
|
+ if (now - lastHitPlayTime < HIT_MIN_INTERVAL) {
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ // 初始化音频
|
|
|
+ if (!hitAudioContext) {
|
|
|
+ initHitAudio()
|
|
|
+ }
|
|
|
+
|
|
|
+ if (!hitAudioContext) {
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ // 更新时间戳
|
|
|
+ lastHitPlayTime = now
|
|
|
+
|
|
|
+ // 停止之前的播放
|
|
|
+ try {
|
|
|
+ hitAudioContext.stop()
|
|
|
+ } catch (e) {
|
|
|
+ // 忽略停止失败
|
|
|
+ }
|
|
|
+
|
|
|
+ // 设置音量并播放
|
|
|
+ hitAudioContext.volume = 1
|
|
|
+ try {
|
|
|
+ hitAudioContext.play()
|
|
|
+ } catch (playError) {
|
|
|
+ console.error('[hitRemind] 播放异常:', playError)
|
|
|
+ hitAudioContext = null
|
|
|
}
|
|
|
} catch (e) {
|
|
|
- // 开发环境兼容处理
|
|
|
- console.warn('开发环境音频播放异常(可忽略):', e);
|
|
|
- }
|
|
|
+ console.error('[hitRemind] 执行出错:', e)
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
|
|
|
@@ -431,24 +472,64 @@ export const isScanEnv = () =>{
|
|
|
return isScanEnv
|
|
|
}
|
|
|
|
|
|
-//没有库存时的语音播放 shish
|
|
|
-export const noStockRemind = () =>{
|
|
|
- try{
|
|
|
- if(uni.getSystemInfoSync().platform != 'windows'){
|
|
|
- const innerAudioContext = uni.createInnerAudioContext()
|
|
|
- innerAudioContext.autoplay = true
|
|
|
- innerAudioContext.src = "/static/noStock.mp3"
|
|
|
- innerAudioContext.volume = 1
|
|
|
- innerAudioContext.onPlay()
|
|
|
- innerAudioContext.onError()
|
|
|
- innerAudioContext.onPause(function() {
|
|
|
- innerAudioContext.destroy()
|
|
|
- })
|
|
|
+// 库存不足提示音 - 缓存对象,避免重复创建
|
|
|
+let noStockAudioContext = null
|
|
|
+let lastNoStockPlayTime = 0
|
|
|
+const NO_STOCK_MIN_INTERVAL = 1000
|
|
|
+
|
|
|
+const initNoStockAudio = () => {
|
|
|
+ if (noStockAudioContext) return
|
|
|
+ try {
|
|
|
+ if (uni.getSystemInfoSync().platform === 'windows') return
|
|
|
+
|
|
|
+ noStockAudioContext = uni.createInnerAudioContext()
|
|
|
+ noStockAudioContext.autoplay = false
|
|
|
+ noStockAudioContext.src = "/static/noStock.mp3"
|
|
|
+ noStockAudioContext.volume = 1
|
|
|
+ } catch (e) {
|
|
|
+ console.error('[noStockRemind] 初始化失败:', e)
|
|
|
+ noStockAudioContext = null
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+export const noStockRemind = () => {
|
|
|
+ try {
|
|
|
+ // 防抖:1秒内只播放一次
|
|
|
+ const now = Date.now()
|
|
|
+ if (now - lastNoStockPlayTime < NO_STOCK_MIN_INTERVAL) {
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ // 初始化音频
|
|
|
+ if (!noStockAudioContext) {
|
|
|
+ initNoStockAudio()
|
|
|
+ }
|
|
|
+
|
|
|
+ if (!noStockAudioContext) {
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ // 更新时间戳
|
|
|
+ lastNoStockPlayTime = now
|
|
|
+
|
|
|
+ // 停止之前的播放
|
|
|
+ try {
|
|
|
+ noStockAudioContext.stop()
|
|
|
+ } catch (e) {
|
|
|
+ // 忽略停止失败
|
|
|
+ }
|
|
|
+
|
|
|
+ // 设置音量并播放
|
|
|
+ noStockAudioContext.volume = 1
|
|
|
+ try {
|
|
|
+ noStockAudioContext.play()
|
|
|
+ } catch (playError) {
|
|
|
+ console.error('[noStockRemind] 播放异常:', playError)
|
|
|
+ noStockAudioContext = null
|
|
|
}
|
|
|
} catch (e) {
|
|
|
- // 开发环境兼容处理
|
|
|
- console.warn('开发环境音频播放异常(可忽略):', e);
|
|
|
- }
|
|
|
+ console.error('[noStockRemind] 执行出错:', e)
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
export async function callUp(mobile){
|