diff --git a/src/views/chat/components/Message/index.vue b/src/views/chat/components/Message/index.vue index 3021d3a..84dd5a3 100644 --- a/src/views/chat/components/Message/index.vue +++ b/src/views/chat/components/Message/index.vue @@ -92,13 +92,17 @@ async function handleCopy() { } } const playStatus = ref('end') +const playStatus = ref('end') let playing = 0 let sok = false +let sok = false async function radioPlay() { console.log('播放', props.mp3) audioElements.length = 0 + audioElements.length = 0 const socket = new WebSocket('wss://chat.lihaink.cn/zhanti/tts') sok = true + sok = true const promise = () => { return new Promise((resolve, reject) => { @@ -123,13 +127,18 @@ async function radioPlay() { console.log('sok状态', sok); } + // socket.send(JSON.stringify({ + // data: '快。科。技0月12。日消息。不宣而发的。华为Mate 60在上架官方商城后。直到现在都处于一机难求的状态。由于Mate 60系列的爆火。华为也是将明年的预计手机出货量翻倍到了7000万台。', + // })) // socket.send(JSON.stringify({ // data: '快。科。技0月12。日消息。不宣而发的。华为Mate 60在上架官方商城后。直到现在都处于一机难求的状态。由于Mate 60系列的爆火。华为也是将明年的预计手机出货量翻倍到了7000万台。', // })) socket.send(JSON.stringify({ data: props.text, + data: props.text, })) playStatus.value = 'playing' + playStatus.value = 'playing' let i = 0 // 监听WebSocket接收消息事件 socket.onmessage = (event: any) => { @@ -169,6 +178,7 @@ const onAudioEnd = (index: any) => { audioElements[playing].play() } else { playStatus.value = 'end' } + else { playStatus.value = 'end' } } // 创建音频对象的数组 const audioElements = reactive([]) @@ -179,17 +189,25 @@ const playAudio = (playIndex: any) => { } watch(() => audioElements.length, (newVal, oldVal) => { + if (playStatus.value == 'pause') + return + if (newVal > playing && playFlag == false && newVal > 0) { if (playStatus.value == 'pause') return if (newVal > playing && playFlag == false && newVal > 0) { audioElements[playing].play() playStatus.value = 'playing' } + playStatus.value = 'playing' + } }) +let pauseIndex = -1 let pauseIndex = -1 // 暂停音频 const pauseAudio = () => { + pauseIndex = playing + 0 + playStatus.value = 'pause' pauseIndex = playing + 0 playStatus.value = 'pause' for (let i = 0; i < audioElements.length; i++) @@ -200,6 +218,11 @@ const noPauseAudio = () => { audioElements[pauseIndex].play() pauseIndex = -1 } +const noPauseAudio = () => { + playStatus.value = 'playing' + audioElements[pauseIndex].play() + pauseIndex = -1 +}