Unity/Agora/voicechat community/デモ通話
提供: 初心者エンジニアの簡易メモ
目次
デモから音声通話サンプル作成
VoiceScene.unityを追加して、VoiceScene.csを作成して、VoiceScene.unityのMainCameraへ追加
using UnityEngine; public class VoiceScene : MonoBehaviour { void Start() { #if !UNITY_EDITOR && UNITY_WEBGL string AppID = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"; TestHelloUnityVideo app = null; // create app if nonexistent if (ReferenceEquals(app, null)) { app = new TestHelloUnityVideo(); // create app app.loadEngine(AppID); // load engine } string ChannelName = "testchannel"; bool enableVideo = false; bool muted = false; app.join(ChannelName, enableVideo, muted); #endif } }
Assets/AgoraEngine/Demo/AudioVideoState.csのフラグを追加
public class AudioVideoStates { public bool subAudio = true; public bool subVideo = false; public bool pubAudio = true; public bool pubVideo = false; }
- Assets/AgoraEngine/Demo/TestHelloUnityVideo.csのjoin()内の、SetupInitState();を削除
- AssetsAgoraEngine/Prefabs/AgoraEventHandlerを、ロードSceneに追加しておく。
切断処理
public void Disconnect() { if (!ReferenceEquals(app, null)) { app.leave(); // leave channel app.unloadEngine(); // delete engine app = null; // delete app } }
ビルド後html表示時に"NullReferenceException"エラーとなる場合
エラー詳細
webgl_project_audio.framework.js:3 NullReferenceException: Object reference not set to an instance of an object.
Assets/AgoraEngine/Demo/TestHelloUnityVideo.csのjoin()内の、SetupInitState();を削除
AgoraTemplate2020が適用されない
- Assets/WebGLTemplates/AgoraTemplate2020があるか確認する。
- PCを再起動する
"Client already in connecting/connected state"エラーが出る時
詳細
AgoraRTCException: AgoraRTCError INVALID_OPERATION: [client-fa598] Client already in connecting/connected state
joinを2回やってたりするとでるので、joinフラグか何かをもたせて、2度処理などしないように。