This commit is contained in:
eric
2025-08-01 08:24:09 +08:00
parent 8a227785d1
commit 745e786fcd

View File

@@ -30,25 +30,24 @@ const Index = () => {
// WebSocket 接收到消息时触发
socket.onmessage = (event) => {
console.log("接收到消息:", event.data);
setMessage(event.data); // 更新消息状态
if (event.data.includes("聊天msg")) {
if (event.data?.includes("11")) {
try {
const data = JSON.parse(event.data);
if (data.type === "join") {
const user = data.data; // 就是你后端推送的 user_data 字典
console.log("✅ 新观众进场:", user);
// ✅ 举例使用
setMessage(`${user.user_name} 进入了直播间`);
speak(`${user.user_name} 进入了直播间`);
setStatus("1");
setTimeout(() => {
setStatus("0");
}, 1000); // 2秒后恢复
}
if (event.data?.includes("22")) {
setStatus("2");
setTimeout(() => {
setStatus("0");
}, 5000); // 2秒后恢复
setMessageArr((arr) => [`${user.user_name} 进入了直播间`, ...arr]);
}
} catch (e) {
console.log("❌ 非 JSON 消息:", event.data);
}
// TTS播放
// speak(event.data);
setMessageArr((messageArr) => [event.data, ...messageArr]); // 更新消息数组
};
// WebSocket 关闭时触发
@@ -122,26 +121,26 @@ const Index = () => {
// const env = Taro.getEnv()
// if (env !== Taro.ENV_TYPE.WEB) return
const innerAudioContext = Taro.createInnerAudioContext()
innerAudioContext.src = baby
innerAudioContext.loop = true
const innerAudioContext = Taro.createInnerAudioContext();
innerAudioContext.src = baby;
innerAudioContext.loop = true;
const handlePlay = () => {
innerAudioContext.play()
console.log('尝试播放音频')
document.removeEventListener('touchstart', handlePlay)
document.removeEventListener('click', handlePlay)
}
innerAudioContext.play();
console.log("尝试播放音频");
document.removeEventListener("touchstart", handlePlay);
document.removeEventListener("click", handlePlay);
};
document.addEventListener('touchstart', handlePlay, { once: true })
document.addEventListener('click', handlePlay, { once: true })
document.addEventListener("touchstart", handlePlay, { once: true });
document.addEventListener("click", handlePlay, { once: true });
return () => {
document.removeEventListener('touchstart', handlePlay)
document.removeEventListener('click', handlePlay)
innerAudioContext.destroy()
}
}, [])
document.removeEventListener("touchstart", handlePlay);
document.removeEventListener("click", handlePlay);
innerAudioContext.destroy();
};
}, []);
// 在线测试地址
// http://wstool.jackxiang.com/
@@ -193,8 +192,6 @@ const Index = () => {
<source src={testmpkv} type="video/mp4"></source>
</video>
</View> */}
</View>
);
};