test.vue 1.13 KB
<template>
  <button @click="setVolume">设置音量</button>
  <audio ref="audioRef" src="https://img.tukuppt.com/newpreview_music/09/03/95/5c8af46b01eb138909.mp3"></audio>
</template>

<script setup>
import { ref } from 'vue';

const audioRef = ref(null);

const setVolume = async () => {
  try {
    // 激活音频上下文
    await audioRef.value.play();
    if (typeof WeixinJSBridge !== 'undefined') {
      WeixinJSBridge.invoke('setAudioVolume', { volume: 0.5 }, (res) => {
        if (res.err_msg === 'setAudioVolume:ok') {
          console.log('音量设置成功');
        } else {
          console.error('1音量设置失败:', res.err_msg);
        }
      });
    } else {
      document.addEventListener('WeixinJSBridgeReady', () => {
        WeixinJSBridge.invoke('setAudioVolume', { volume: 0.5 }, (res) => {
          if (res.err_msg === 'setAudioVolume:ok') {
            console.log('音量设置成功');
          } else {
            console.error('2音量设置失败:', res.err_msg);
          }
        });
      }, false);
    }
  } catch (error) {
    console.error('激活音频上下文失败:', error);
  }
};
</script>