// 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"); } } }
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); } }
// 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; }
// 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; }
// 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)); }