🐙
Vivoxを使ったUnityゲームでの音声チャット実装メモ
概要
Vivoxとは、ゲーム内でVoiceChatを実現するためのサービスです。
あまり記事にすることでもないですが、ここにメモとして残しておきます。
初期化
var config = new VivoxConfigurationOptions
{
DisableAudioDucking = true // 自分が話しているときに他の人の声が小さくなる機能を無効化
};
await VivoxService.Instance.InitializeAsync(config).AsUniTask();
Login・Logout
Login
var option = new LoginOptions
{
DisplayName = "",
PlayerId = ""
};
await VivoxService.Instance.LoginAsync(option).AsUniTask();
Logout
await VivoxService.Instance.LogoutAsync().AsUniTask();
Channel入室・退出
Channel入出
Channelに入る際は、Loginしていることが前提
await VivoxService.Instance.JoinGroupChannelAsync("ChannelName", ChatCapability.AudioOnly).AsUniTask();
EchoChannelに入ると、自分の声を確認することができる
await VivoxService.Instance.JoinEchoChannelAsync("ChannelName", ChatCapability.AudioOnly).AsUniTask();
Channel退出
await VivoxService.Instance.LeaveAllChannelsAsync().AsUniTask();
Mute・Unmute方法
// Mute
VivoxService.Instance.MuteInputDevice();
// Unmute
VivoxService.Instance.UnmuteInputDevice();
Callback
Login時やChannel入退室時に、Callbackを設定して、確認が可能である
また、意図しない切断時の処理を行うのにも利用できる
// Login時に呼び出される
VivoxService.Instance.LoggedIn
VivoxService.Instance.LoggedOut
// Channelに入室した際に呼び出される
VivoxService.Instance.ChannelJoined
VivoxService.Instance.ChannelLeft
VivoxService.Instance.ConnectionRecovered
VivoxService.Instance.ConnectionRecovering
VivoxService.Instance.ConnectionFailedToRecover
// Channelに参加者が追加されたときに呼び出される 他の人が入室した際にも呼び出される
VivoxService.Instance.ParticipantAddedToChannel
VivoxService.Instance.ParticipantRemovedFromChannel
参考資料
Audio Ducking機能の設定
Audio Duckingとは、自分が話しているときに相手の音声を小さくする機能です。
AudioDuckingの無効化方法
var config = new VivoxConfigurationOptions
{
DisableAudioDucking = true,
DynamicVoiceProcessingSwitching = false,
};
await VivoxService.Instance.InitializeAsync(config).AsUniTask();
設定の説明
-
DynamicVoiceProcessingSwitching
自動的に最適な音声処理方法を選択するかどうか -
DisableAudioDucking
自分が話しているときに他の人の声が小さくなる機能を無効化
参考資料
設定
Audio DuckingのTrigger
Volume設定
Discussion