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