Exemple #1
0
        /// <summary>
        /// Find the microphone to use and return it's sample rate
        /// </summary>
        /// <returns>New Mic's sample rate</returns>
        internal int GetCurrentMicSampleRate()
        {
            //Make sure the requested mic index exists
            if (Microphone.devices.Length <= MicNumberToUse)
            {
                return(-1);
            }

            int minFreq;
            int maxFreq;

            Microphone.GetDeviceCaps(_currentMic, out minFreq, out maxFreq);

            int micSampleRate = MumbleClient.GetNearestSupportedSampleRate(maxFreq);

            NumSamplesPerOutgoingPacket = MumbleConstants.NUM_FRAMES_PER_OUTGOING_PACKET * micSampleRate / 100;

            print("Device:  " + _currentMic + " has freq: " + minFreq + " to " + maxFreq + " setting to: " + micSampleRate);
            _currentMic = Microphone.devices[MicNumberToUse];

            _voiceHoldSamples = Mathf.RoundToInt(micSampleRate * VoiceHoldSeconds);

            if (SendAudioOnStart && (VoiceSendingType == MicType.AlwaysSend ||
                                     VoiceSendingType == MicType.Amplitude))
            {
                StartSendingAudio(micSampleRate);
            }
            return(micSampleRate);
        }
        /// <summary>
        /// Find the microphone to use and return it's sample rate
        /// </summary>
        /// <returns>New Mic's sample rate</returns>
        internal int InitializeMic()
        {
            //Make sure the requested mic index exists
            if (Microphone.devices.Length <= MicNumberToUse)
            {
                Debug.LogWarning("No microphone connected!");
                return(-1);
            }

            _currentMic = Microphone.devices[MicNumberToUse];
            int minFreq;
            int maxFreq;

            Microphone.GetDeviceCaps(_currentMic, out minFreq, out maxFreq);

            int micSampleRate = MumbleClient.GetNearestSupportedSampleRate(maxFreq);

            NumSamplesPerOutgoingPacket = MumbleConstants.NUM_FRAMES_PER_OUTGOING_PACKET * micSampleRate / 100;

            if (micSampleRate != 48000)
            {
                Debug.LogWarning("Using a possibly unsupported sample rate of " + micSampleRate + " things might get weird");
            }
            Debug.Log("Device:  " + _currentMic + " has freq: " + minFreq + " to " + maxFreq + " setting to: " + micSampleRate);

            _voiceHoldSamples = Mathf.RoundToInt(micSampleRate * VoiceHoldSeconds);

            if (SendAudioOnStart && (VoiceSendingType == MicType.AlwaysSend ||
                                     VoiceSendingType == MicType.Amplitude))
            {
                StartSendingAudio(micSampleRate);
            }

            return(micSampleRate);
        }
Exemple #3
0
 internal MumbleUdpConnection(IPEndPoint host, AudioDecodeThread audioDecodeThread, MumbleClient mumbleClient)
 {
     _host              = host;
     _udpClient         = new UdpClient();
     _audioDecodeThread = audioDecodeThread;
     _mumbleClient      = mumbleClient;
 }
Exemple #4
0
 public ManageAudioSendBuffer(OpusCodec codec, MumbleUdpConnection udpConnection, MumbleClient mumbleClient)
 {
     _udpConnection  = udpConnection;
     _codec          = codec;
     _mumbleClient   = mumbleClient;
     _pcmArrays      = new List <PcmArray>();
     _encodingBuffer = new AudioEncodingBuffer();
 }
Exemple #5
0
 public void Initialize(MumbleClient mumbleClient, UInt32 session, string mumbleusername)
 {
     Debug.Log("Initialized " + session, this);
     _mumbleClient = mumbleClient;
     _session      = session;
     Debug.Log("Username: " + mumbleusername);
     this.MumbleUserName = mumbleusername;
 }
 public ManageAudioSendBuffer(MumbleUdpConnection udpConnection, MumbleClient mumbleClient)
 {
     _udpConnection  = udpConnection;
     _mumbleClient   = mumbleClient;
     _pcmArrays      = new List <PcmArray>();
     _encodingBuffer = new AudioEncodingBuffer();
     _waitHandle     = new AutoResetEvent(false);
 }
 public AudioDecodeThread(int outputSampleRate, int outputChannelCount, MumbleClient mumbleClient)
 {
     _mumbleClient       = mumbleClient;
     _waitHandle         = new AutoResetEvent(false);
     _outputSampleRate   = outputSampleRate;
     _outputChannelCount = outputChannelCount;
     _decodeThread       = new Thread(DecodeThread);
     _decodeThread.Start();
 }
 public ManageAudioSendBuffer(MumbleUdpConnection udpConnection, MumbleClient mumbleClient, int maxPositionalLength)
 {
     _isRunning           = true;
     _udpConnection       = udpConnection;
     _mumbleClient        = mumbleClient;
     _pcmArrays           = new List <PcmArray>();
     _encodingBuffer      = new AudioEncodingBuffer();
     _waitHandle          = new AutoResetEvent(false);
     _maxPositionalLength = maxPositionalLength;
 }
 public void Reset()
 {
     _mumbleClient = null;
     Session       = 0;
     OnAudioSample = null;
     _isPlaying    = false;
     if (_audioSource != null)
     {
         _audioSource.Stop();
     }
 }
Exemple #10
0
        public ManageAudioSendBuffer(OpusCodec codec, MumbleUdpConnection udpConnection, MumbleClient mumbleClient)
        {
            _udpConnection  = udpConnection;
            _codec          = codec;
            _mumbleClient   = mumbleClient;
            _pcmArrays      = new List <PcmArray>();
            _encodingBuffer = new AudioEncodingBuffer();

            _encodingThread = new Thread(EncodingThreadEntry)
            {
                IsBackground = true
            };
        }
Exemple #11
0
        internal MumbleTcpConnection(IPEndPoint host, string hostname, UpdateOcbServerNonce updateOcbServerNonce,
                                     MumbleUdpConnection udpConnection, MumbleClient mumbleClient)
        {
            _host                 = host;
            _hostname             = hostname;
            _mumbleClient         = mumbleClient;
            _udpConnection        = udpConnection;
            _tcpClient            = new TcpClient();
            _updateOcbServerNonce = updateOcbServerNonce;

            _processThread = new Thread(ProcessTcpData)
            {
                IsBackground = true
            };
        }
Exemple #12
0
 internal MumbleUdpConnection(IPEndPoint host, MumbleClient mumbleClient)
 {
     _host         = host;
     _udpClient    = new UdpClient();
     _mumbleClient = mumbleClient;
 }
Exemple #13
0
 public void Initialize(MumbleClient mumbleClient)
 {
     _mumbleClient = mumbleClient;
 }
 public void Initialize(MumbleClient mumbleClient, UInt32 session)
 {
     //Debug.Log("Initialized " + session, this);
     _mumbleClient = mumbleClient;
     _session      = session;
 }
 public void Initialize(MumbleClient mumbleClient, UInt32 session)
 {
     _mumbleClient = mumbleClient;
     _session      = session;
 }
Exemple #16
0
 public void Reset()
 {
     _mumbleClient = null;
     Session       = 0;
     OnAudioSample = null;
 }