Beispiel #1
0
 // for settings put in scene in editor
 void Awake()
 {
     lock (instanceLock)
     {
         Instance = this;
     }
 }
 // for settings put in scene in editor
 void Awake()
 {
     lock (instanceLock)
     {
         if (instance == null)
         {
             Instance = this;
         }
     }
 }
    // Use this for initialization
    IEnumerator Start()
    {
        while (FindObjectOfType <ReadyManager>().localPlayer == null)
        {
            yield return(null);
        }
        settings = FindObjectOfType <PhotonVoiceSettings>();
        rec      = FindObjectOfType <ReadyManager>().localPlayer.GetComponent <PhotonVoiceRecorder>();

        PhotonVoiceNetwork.Client.ChangeAudioGroups(new byte[0], null);
        rec.AudioGroup = (byte)0;
    }
 // for settings put in scene in editor
 void Awake()
 {
     lock (instanceLock)
     {
         if (instance == null)
         {
             instance = this;
         }
         else
         {
             Debug.LogError("PUNVoice: Attempt to create multiple instances of PhotonVoiceSettings");
         }
     }
 }
Beispiel #5
0
        void SetupPhotonVoiceSettingsIfNeeded()
        {
            Application application = (Application)target;

            PhotonVoiceSettings settings = application.gameObject.AddComponentIfNeeded <PhotonVoiceSettings>();

            if (settings != null)
            {
                settings.AutoConnect             = true;
                settings.AutoDisconnect          = true;
                settings.AutoTransmit            = true;
                settings.VoiceDetection          = true;
                settings.VoiceDetectionThreshold = 0.005f;
                settings.PlayDelayMs             = 150;
                settings.DebugInfo = false;
                settings.hideFlags = HideFlags.HideInInspector;
                UnityEditorInternal.InternalEditorUtility.SetIsInspectorExpanded(settings, false);
            }
        }
Beispiel #6
0
 // Token: 0x0600007D RID: 125 RVA: 0x00004190 File Offset: 0x00002390
 private void Awake()
 {
     PhotonVoiceSettings.Instance = this;
 }
 // for settings put in scene in editor
 private void Awake()
 {
     Instance = this;
 }
Beispiel #8
0
    // Token: 0x06000092 RID: 146 RVA: 0x000043F4 File Offset: 0x000025F4
    private void OnGUI()
    {
        PhotonVoiceRecorder photonVoiceRecorder = null;

        foreach (PhotonVoiceRecorder photonVoiceRecorder2 in Object.FindObjectsOfType <PhotonVoiceRecorder>())
        {
            if (photonVoiceRecorder2.photonView.isMine)
            {
                photonVoiceRecorder = photonVoiceRecorder2;
                break;
            }
        }
        GUIStyle guistyle = new GUIStyle("label");

        guistyle.fontSize = 24 * Screen.height / 600;
        guistyle.wordWrap = false;
        GUIStyle guistyle2 = new GUIStyle("label");

        guistyle2.fontSize = 16 * Screen.height / 600;
        guistyle2.wordWrap = false;
        GUIStyle guistyle3 = new GUIStyle("button");

        guistyle3.fontSize = 28 * Screen.height / 600;
        GUIStyle guistyle4 = new GUIStyle("button");

        guistyle4.fontSize = 16 * Screen.height / 600;
        string text = "";

        if (PhotonNetwork.inRoom)
        {
            text = PhotonNetwork.room.Name;
        }
        string text2 = string.Format("RTT/Var/Que: {0}/{1}/{2}", PhotonNetwork.networkingPeer.RoundTripTime.ToString(), PhotonNetwork.networkingPeer.RoundTripTimeVariance, PhotonNetwork.networkingPeer.QueuedIncomingCommands);

        GUILayout.Label(string.Concat(new string[]
        {
            "PUN: ",
            PhotonNetwork.connectionStateDetailed.ToString(),
            " ",
            text,
            " ",
            text2
        }), guistyle, Array.Empty <GUILayoutOption>());
        GUILayout.BeginHorizontal(Array.Empty <GUILayoutOption>());
        if (GUILayout.Button("Connect", guistyle3, Array.Empty <GUILayoutOption>()))
        {
            PhotonNetwork.ConnectUsingSettings(string.Format("1.{0}", SceneManagerHelper.ActiveSceneBuildIndex));
        }
        if (GUILayout.Button("Disconnect", guistyle3, Array.Empty <GUILayoutOption>()))
        {
            PhotonNetwork.Disconnect();
        }
        GUILayout.EndHorizontal();
        text = "";
        if (PhotonVoiceNetwork.ClientState == ExitGames.Client.Photon.LoadBalancing.ClientState.Joined)
        {
            text = PhotonVoiceNetwork.CurrentRoomName;
        }
        if (this.dataRateNextTime < Time.time)
        {
            this.dataRateNextTime = Time.time + 1f;
            this.dataRateIn       = (PhotonVoiceNetwork.Client.loadBalancingPeer.TrafficStatsIncoming.TotalPacketBytes - this.prevInBytes) / 1;
            this.dataRateOut      = (PhotonVoiceNetwork.Client.loadBalancingPeer.TrafficStatsOutgoing.TotalPacketBytes - this.prevOutBytes) / 1;
            this.prevInBytes      = PhotonVoiceNetwork.Client.loadBalancingPeer.TrafficStatsIncoming.TotalPacketBytes;
            this.prevOutBytes     = PhotonVoiceNetwork.Client.loadBalancingPeer.TrafficStatsOutgoing.TotalPacketBytes;
        }
        text2 = string.Format("RTT/Var/Que: {0}/{1}/{2}", PhotonVoiceNetwork.Client.loadBalancingPeer.RoundTripTime.ToString(), PhotonVoiceNetwork.Client.loadBalancingPeer.RoundTripTimeVariance, PhotonVoiceNetwork.Client.loadBalancingPeer.QueuedIncomingCommands);
        GUILayout.Label(string.Concat(new string[]
        {
            "PhotonVoice: ",
            PhotonVoiceNetwork.ClientState.ToString(),
            " ",
            text,
            " ",
            text2
        }), guistyle, Array.Empty <GUILayoutOption>());
        GUILayout.BeginHorizontal(Array.Empty <GUILayoutOption>());
        GUILayout.Label(string.Concat(new object[]
        {
            "Data rate in/out bytes/sec: ",
            this.dataRateIn,
            "/",
            this.dataRateOut
        }), guistyle2, Array.Empty <GUILayoutOption>());
        if (PhotonVoiceNetwork.Client.loadBalancingPeer != null)
        {
            GUILayout.Label(string.Concat(new object[]
            {
                "Traffic bytes: ",
                PhotonVoiceNetwork.Client.loadBalancingPeer.TrafficStatsIncoming.TotalPacketBytes,
                "/",
                PhotonVoiceNetwork.Client.loadBalancingPeer.TrafficStatsOutgoing.TotalPacketBytes
            }), guistyle2, Array.Empty <GUILayoutOption>());
        }
        GUILayout.Label(string.Concat(new object[]
        {
            "Frames Sent/Rcvd/Lost: ",
            PhotonVoiceNetwork.VoiceClient.FramesSent,
            "/",
            PhotonVoiceNetwork.VoiceClient.FramesReceived,
            "/",
            PhotonVoiceNetwork.VoiceClient.FramesLost
        }), guistyle2, Array.Empty <GUILayoutOption>());
        GUILayout.Label(string.Concat(new object[]
        {
            "Voice RTT/Var: ",
            PhotonVoiceNetwork.VoiceClient.RoundTripTime,
            "/",
            PhotonVoiceNetwork.VoiceClient.RoundTripTimeVariance
        }), guistyle2, Array.Empty <GUILayoutOption>());
        GUILayout.EndHorizontal();
        GUILayout.BeginHorizontal(Array.Empty <GUILayoutOption>());
        GUILayout.Label("Speakers:", guistyle2, Array.Empty <GUILayoutOption>());
        foreach (PhotonVoiceSpeaker photonVoiceSpeaker in Object.FindObjectsOfType <PhotonVoiceSpeaker>())
        {
            if (photonVoiceSpeaker.IsVoiceLinked)
            {
                GUILayout.Label("lag=" + photonVoiceSpeaker.CurrentBufferLag, guistyle2, Array.Empty <GUILayoutOption>());
            }
        }
        GUILayout.EndHorizontal();
        GUILayout.BeginHorizontal(Array.Empty <GUILayoutOption>());
        if (GUILayout.Button("Connect", guistyle3, Array.Empty <GUILayoutOption>()))
        {
            PhotonVoiceNetwork.Connect();
        }
        if (GUILayout.Button("Disconnect", guistyle3, Array.Empty <GUILayoutOption>()))
        {
            PhotonVoiceNetwork.Disconnect();
        }
        GUILayout.EndHorizontal();
        GUILayout.BeginHorizontal(Array.Empty <GUILayoutOption>());
        if (photonVoiceRecorder != null && photonVoiceRecorder.photonView.isMine)
        {
            if (GUILayout.Button((photonVoiceRecorder.DebugEchoMode ? "[X] " : "[ ] ") + "Debug Echo", guistyle3, Array.Empty <GUILayoutOption>()))
            {
                photonVoiceRecorder.DebugEchoMode = !photonVoiceRecorder.DebugEchoMode;
            }
            if (GUILayout.Button((photonVoiceRecorder.Transmit ? "[X] " : "[ ] ") + "Transmit", guistyle3, Array.Empty <GUILayoutOption>()))
            {
                photonVoiceRecorder.Transmit = !photonVoiceRecorder.Transmit;
            }
            if (GUILayout.Button((photonVoiceRecorder.VoiceDetector.On ? "[X] " : "[ ] ") + "Detect", guistyle3, Array.Empty <GUILayoutOption>()))
            {
                photonVoiceRecorder.Detect = !photonVoiceRecorder.Detect;
            }
            if (GUILayout.Button((photonVoiceRecorder.VoiceDetectorCalibrating ? "[X] " : "[ ] ") + "Calibrate Detector", guistyle3, Array.Empty <GUILayoutOption>()))
            {
                photonVoiceRecorder.VoiceDetectorCalibrate(2000);
            }
            GUILayout.EndHorizontal();
            GUILayout.BeginHorizontal(Array.Empty <GUILayoutOption>());
            GUILayout.Label("Transmitting: " + photonVoiceRecorder.IsTransmitting.ToString(), guistyle2, Array.Empty <GUILayoutOption>());
            GUILayout.Label("Avg Amp: " + ((photonVoiceRecorder.LevelMeter == null) ? "" : (photonVoiceRecorder.LevelMeter.CurrentAvgAmp.ToString("0.000000") + "/" + photonVoiceRecorder.LevelMeter.AccumAvgPeakAmp.ToString("0.000000"))), guistyle2, Array.Empty <GUILayoutOption>());
            GUILayout.Label("Peak Amp: " + ((photonVoiceRecorder.LevelMeter == null) ? "" : photonVoiceRecorder.LevelMeter.CurrentPeakAmp.ToString("0.000000")), guistyle2, Array.Empty <GUILayoutOption>());
            GUILayout.Label("Detector Threshold: " + ((photonVoiceRecorder.VoiceDetector == null) ? "" : photonVoiceRecorder.VoiceDetector.Threshold.ToString("0.000000")), guistyle2, Array.Empty <GUILayoutOption>());
            GUILayout.Label("Audio group (rec): " + photonVoiceRecorder.AudioGroup.ToString(), guistyle2, Array.Empty <GUILayoutOption>());
            GUILayout.EndHorizontal();
        }
        else
        {
            GUILayout.EndHorizontal();
        }
        GUILayout.BeginHorizontal(Array.Empty <GUILayoutOption>());
        GUILayout.Label("Set Group (offs Debug Echo): ", guistyle2, Array.Empty <GUILayoutOption>());
        for (byte b = 0; b < 5; b += 1)
        {
            if (GUILayout.Button(((PhotonVoiceNetwork.Client.GlobalAudioGroup == b) ? "[X] " : "[ ] ") + ((b == 0) ? "No" : b.ToString()), guistyle4, Array.Empty <GUILayoutOption>()))
            {
                PhotonVoiceNetwork.Client.GlobalAudioGroup = b;
            }
        }
        GUILayout.EndHorizontal();
        PhotonVoiceSettings instance = PhotonVoiceSettings.Instance;

        GUILayout.BeginHorizontal(Array.Empty <GUILayoutOption>());
        GUILayout.Label("Unity Mic: ", guistyle2, Array.Empty <GUILayoutOption>());
        foreach (string text3 in Microphone.devices)
        {
            if (GUILayout.Button(((instance.MicrophoneType == PhotonVoiceSettings.MicAudioSourceType.Unity && PhotonVoiceNetwork.MicrophoneDevice == text3) ? "[X] " : "[ ] ") + text3, guistyle4, Array.Empty <GUILayoutOption>()))
            {
                instance.MicrophoneType             = PhotonVoiceSettings.MicAudioSourceType.Unity;
                PhotonVoiceNetwork.MicrophoneDevice = text3;
            }
        }
        GUILayout.EndHorizontal();
        GUILayout.BeginHorizontal(Array.Empty <GUILayoutOption>());
        GUILayout.Label("Photon Mic: ", guistyle2, Array.Empty <GUILayoutOption>());
        if (PhotonVoiceNetwork.PhotonMicrophoneEnumerator.IsSupported)
        {
            for (int j = 0; j < PhotonVoiceNetwork.PhotonMicrophoneEnumerator.Count; j++)
            {
                if (GUILayout.Button(((instance.MicrophoneType == PhotonVoiceSettings.MicAudioSourceType.Photon && PhotonVoiceNetwork.PhotonMicrophoneDeviceID == PhotonVoiceNetwork.PhotonMicrophoneEnumerator.IDAtIndex(j)) ? "[X] " : "[ ] ") + PhotonVoiceNetwork.PhotonMicrophoneEnumerator.NameAtIndex(j), guistyle4, Array.Empty <GUILayoutOption>()))
                {
                    instance.MicrophoneType = PhotonVoiceSettings.MicAudioSourceType.Photon;
                    PhotonVoiceNetwork.PhotonMicrophoneDeviceID = PhotonVoiceNetwork.PhotonMicrophoneEnumerator.IDAtIndex(j);
                }
            }
            if (GUILayout.Button("Refresh", guistyle4, Array.Empty <GUILayoutOption>()))
            {
                PhotonVoiceNetwork.PhotonMicrophoneEnumerator.Refresh();
            }
        }
        else if (Microphone.devices.Length != 0 && GUILayout.Button(((instance.MicrophoneType == PhotonVoiceSettings.MicAudioSourceType.Photon) ? "[X] " : "[ ] ") + Microphone.devices[0], guistyle4, Array.Empty <GUILayoutOption>()))
        {
            instance.MicrophoneType = PhotonVoiceSettings.MicAudioSourceType.Photon;
            PhotonVoiceNetwork.PhotonMicrophoneDeviceID = -1;
        }
        GUILayout.EndHorizontal();
        GUI.enabled = true;
    }
Beispiel #9
0
    // Token: 0x0600006B RID: 107 RVA: 0x00003B3C File Offset: 0x00001D3C
    private LocalVoice createLocalVoiceAudioAndSource()
    {
        PhotonVoiceSettings instance = PhotonVoiceSettings.Instance;

        switch (this.Source)
        {
        case PhotonVoiceRecorder.AudioSource.Microphone:
            if ((this.MicrophoneType == PhotonVoiceRecorder.MicAudioSourceType.Settings && instance.MicrophoneType == PhotonVoiceSettings.MicAudioSourceType.Photon) || this.MicrophoneType == PhotonVoiceRecorder.MicAudioSourceType.Photon)
            {
                int num = (this.PhotonMicrophoneDeviceID != -1) ? this.PhotonMicrophoneDeviceID : PhotonVoiceNetwork.PhotonMicrophoneDeviceID;
                if (PhotonVoiceSettings.Instance.DebugInfo)
                {
                    Debug.LogFormat("PUNVoice: Setting recorder's source to Photon microphone device {0}", new object[]
                    {
                        num
                    });
                }
                this.audioSource = new WindowsAudioInPusher(num);
                if (PhotonVoiceSettings.Instance.DebugInfo)
                {
                    Debug.LogFormat("PUNVoice: Setting recorder's source to WindowsAudioInPusher", Array.Empty <object>());
                }
            }
            else
            {
                if (Microphone.devices.Length < 1)
                {
                    return(LocalVoiceAudio.Dummy);
                }
                string text = (this.MicrophoneDevice != null) ? this.MicrophoneDevice : PhotonVoiceNetwork.MicrophoneDevice;
                if (PhotonVoiceSettings.Instance.DebugInfo)
                {
                    Debug.LogFormat("PUNVoice: Setting recorder's source to microphone device {0}", new object[]
                    {
                        text
                    });
                }
                MicWrapper micWrapper = new MicWrapper(text, (int)instance.SamplingRate);
                this.audioSource = micWrapper;
            }
            break;

        case PhotonVoiceRecorder.AudioSource.AudioClip:
            if (this.AudioClip == null)
            {
                Debug.LogErrorFormat("PUNVoice: AudioClip property must be set for AudioClip audio source", Array.Empty <object>());
                return(LocalVoiceAudio.Dummy);
            }
            this.audioSource = new AudioClipWrapper(this.AudioClip);
            if (this.LoopAudioClip)
            {
                ((AudioClipWrapper)this.audioSource).Loop = true;
            }
            break;

        case PhotonVoiceRecorder.AudioSource.Factory:
            if (PhotonVoiceNetwork.AudioSourceFactory == null)
            {
                Debug.LogErrorFormat("PUNVoice: PhotonVoiceNetwork.AudioSourceFactory must be specified if PhotonVoiceRecorder.Source set to Factory", Array.Empty <object>());
                return(LocalVoiceAudio.Dummy);
            }
            this.audioSource = PhotonVoiceNetwork.AudioSourceFactory(this);
            break;

        default:
            Debug.LogErrorFormat("PUNVoice: unknown Source value {0}", new object[]
            {
                this.Source
            });
            return(LocalVoiceAudio.Dummy);
        }
        VoiceInfo voiceInfo = VoiceInfo.CreateAudioOpus(instance.SamplingRate, this.audioSource.SamplingRate, this.audioSource.Channels, instance.FrameDuration, instance.Bitrate, base.photonView.viewID);

        return(this.createLocalVoiceAudio(voiceInfo, this.audioSource));
    }