C# スクリプトで Audio Tap を使用する
How to add Audio Taps through C# scripts.
読み終わるまでの所要時間 2 分最終更新 23日前
このセクションでは、エディターの UI ではなく、スクリプトを使用して Audio Tap を追加する方法についての情報を示します。
Capture Source Tap と Channel Audio Tap
C# スクリプトを使用して、Capture Source Tap と Channel Audio Tap をシーンに追加できます。以下は、スクリプトを使用して Vivox Channel Audio Tap のオーディオにエコー効果を追加する方法の例です。空のゲームオブジェクトを作成し、private GameObject _channelAudioGameObject;public void AddChannelAudioEffect(){ // Create the GameObject _channelAudioGameObject = new GameObject("ChannelAudioGameObject"); // Add the Tap to it _channelAudioGameObject.AddComponent<VivoxChannelAudioTap>(); // Also add an echo filter, for example _channelAudioGameObject.AddComponent<AudioEchoFilter>();}
VivoxChannelAudioTapAudioEchoFilterVivoxCaptureSourceTapParticipant Tap のスクリプト
Participant Tap は、VivoxParticipant クラスのCreateVivoxParticipantTapVivoxService.Instance.ParticipantAddedToChannelCreateVivoxParticipantTapParticipantAddedToChannel上のスクリプト例では、作成されたオブジェクトが削除されていないことに注意してください。必要に応じて、特定のチャンネルメンバーに対してのみタップを作成するロジックを追加できます。using Unity.Services.Vivox;using UnityEngine;public class ParticipantHandler : MonoBehaviour{ void Start() { VivoxService.Instance.ParticipantAddedToChannel += AddParticipantEffect; } void AddParticipantEffect(VivoxParticipant participant) { var gameObject = participant.CreateVivoxParticipantTap("MyNewGameObject"); gameObject.AddComponent<AudioEchoFilter>(); }}
CreateVivoxParticipantTapVivoxParticipant.DestroyVivoxParticipantTapAudio Tap のステータスの監視
Audio Tap には、作成した Audio Tap のステータスを監視するための公開パラメーター TapId があります。Tap の作成後、TapId の値は、エラーがなかったことを意味する 0 以上の値になる必要があります。以下は、Tap を作成し、TapId の値が期待どおりの値であることを確認する例です。TapId が 0 より小さい値の場合、その値がエラーのトラブルシューティングに役立ちます。表示される可能性がある値と、そのエラー理由を以下に示します。private GameObject _channelAudioGameObject;public void AddChannelAudioEffect(){ // Create the GameObject _channelAudioGameObject = new GameObject("ChannelAudioGameObject"); // Add the Tap to it var tap = _channelAudioGameObject.AddComponent<VivoxChannelAudioTap>(); if (tap.TapId < 0) { Destroy(_channelAudioGameObject); // Destroy the GameObject, since the status is not valid Debug.LogError($"Failed to create VivoxChannelAudioTap"); return; } else { Debug.Log("There was no error creating VivoxChannelAudioTap"); }}
- -1 :タップは現在、未登録です。これは、タップがインスタンス化されているが、まだ Vivox に登録されていない場合に発生する可能性があります。例えば、チャンネルが自動的に取得されるのを待機しているためです。
- -1010 :タップは登録されていません。
- -1011 :無効な参加者名でタップを登録しようとしました。
- -1012 :無効なチャンネル名でタップを登録しようとしました。
- -1050 :Vivox Participant Tap にのみ適用されます。指定された参加者名からは Participant URI が見つかりませんでした。
- -1051 :タップを Vivox に登録しようとしましたが、VivoxService が初期化されませんでした。Audio Tap を初期化する前に、必ず VivoxService を初期化してください。
- -1052 :無効なチャンネル名でタップを Vivox に登録しようとしました。チャンネル名を正しく設定してください。