DisplayMics.cs 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. using UnityEngine;
  2. namespace UnityWebGLMicrophone
  3. {
  4. public class DisplayMics : MonoBehaviour
  5. {
  6. #if UNITY_WEBGL && !UNITY_EDITOR
  7. void Awake()
  8. {
  9. Microphone.Init();
  10. Microphone.QueryAudioInput();
  11. }
  12. #endif
  13. #if UNITY_WEBGL && !UNITY_EDITOR
  14. void Update()
  15. {
  16. Microphone.Update();
  17. }
  18. #endif
  19. void OnGUI()
  20. {
  21. GUILayout.BeginVertical(GUILayout.Height(Screen.height));
  22. GUILayout.FlexibleSpace();
  23. string[] devices = Microphone.devices;
  24. #if UNITY_WEBGL && !UNITY_EDITOR
  25. float[] volumes = Microphone.volumes;
  26. #endif
  27. GUILayout.BeginHorizontal(GUILayout.Width(Screen.width));
  28. GUILayout.FlexibleSpace();
  29. GUILayout.Label(string.Format("Microphone count={0}", devices.Length));
  30. GUILayout.FlexibleSpace();
  31. GUILayout.EndHorizontal();
  32. for (int index = 0; index < devices.Length; ++index)
  33. {
  34. string deviceName = devices[index];
  35. if (deviceName == null)
  36. {
  37. deviceName = string.Empty;
  38. }
  39. GUILayout.BeginHorizontal(GUILayout.Width(Screen.width));
  40. GUILayout.FlexibleSpace();
  41. #if UNITY_WEBGL && !UNITY_EDITOR
  42. GUILayout.Label(string.Format("Device Name={0} Volume={1}", deviceName, volumes[index]));
  43. #else
  44. GUILayout.Label(string.Format("Device Name={0}", deviceName));
  45. #endif
  46. GUILayout.FlexibleSpace();
  47. GUILayout.EndHorizontal();
  48. }
  49. GUILayout.FlexibleSpace();
  50. GUILayout.EndVertical();
  51. }
  52. }
  53. }