用户:
LZ编编编编程猫查看:12 回复:13 评论:12 创建时间:2023-07-22T00:05:18
⚠⚠⚠pro版rtc功能未完善,语音频道内的玩家若退出地图会导致地图下一次运行时崩溃,任何人无法进入!严禁在已发布地图上测试此功能!地图崩溃后果自负!
(async () => {
channel = await rtc.createChannel();
})();
world.onPlayerJoin(async ({ entity }) => {
entity.player.inChannel = false;
entity.player.directMessage('鼠标右键(手机/平板B键)可打开语音设置面板');
});
world.onPress(async ({ button, entity }) => {
if (button === GameButtonType.ACTION1) {
let permission = await channel.getMicrophonePermission(entity);
if (!permission) {
entity.player.dialog(({
type: GameDialogType.TEXT,
title: '语音设置',
content: '检测到你已禁止此网页使用你的麦克风,请先允许此功能!',
}));
return;
}
let players = await channel.getPlayers();
if (!entity.player.inChannel) {
let result = await entity.player.dialog(({
type: GameDialogType.SELECT,
title: '语音设置',
options: ['加入语音频道']
}));
if (!result) {
return;
}
await channel.add(entity);
await channel.publishMicrophone(entity);
entity.player.inChannel = true;
world.say(entity.player.name + '加入了语音频道!');
return;
}
let result = await entity.player.dialog({
type: GameDialogType.SELECT,
title: '语音设置',
options: ['开启麦克风', '关闭麦克风', '设置麦克风音量', '查看语音频道内玩家列表', '退出语音频道']
});
if (!result) return;
switch (result.index) {
case 0:
await channel.publishMicrophone(entity);
entity.player.directMessage('已开启麦克风!');
break;
case 1:
await channel.unpublish(entity);
entity.player.directMessage('已关闭麦克风!');
break;
case 2:
let volume = await channel.getVolume(entity);
let result = await entity.player.dialog({
type: GameDialogType.INPUT,
title: '设置麦克风音量',
content: '你目前的麦克风音量为' + volume,
placeholder: '设置麦克风音量(0~100的整数)'
});
if (!result) {
break;
}
result = +result;
if (!Number.isInteger(result) || result < 0 || result > 100) {
entity.player.directMessage('输入不合法!');
break;
}
await channel.setVolume(entity, result);
entity.player.directMessage('已将麦克风音量设置为' + result);
break;
case 3:
let names = players.map((entity) => entity.player.name);
entity.player.dialog({
type: GameDialogType.SELECT,
title: '语音频道内玩家列表',
options: names
});
break;
case 4:
await channel.remove(entity);
entity.player.inChannel = false;
world.say(entity.player.name+'退出了语音频道!');
break;
default:
break;
}
}
});