'ss;
This commit is contained in:
@@ -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>
|
||||
);
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user