Пример #1
0
 public override void EndRecording(RecordingSession session)
 {
     if (audioSettings.m_PreserveAudio)
     {
         AudioRenderer.Stop();
     }
 }
Пример #2
0
        public override void BeginRecording(RecordingSession session)
        {
            m_ChannelCount = new Func <ushort>(() => {
                switch (AudioSettings.speakerMode)
                {
                case AudioSpeakerMode.Mono:        return(1);

                case AudioSpeakerMode.Stereo:      return(2);

                case AudioSpeakerMode.Quad:        return(4);

                case AudioSpeakerMode.Surround:    return(5);

                case AudioSpeakerMode.Mode5point1: return(6);

                case AudioSpeakerMode.Mode7point1: return(7);

                case AudioSpeakerMode.Prologic:    return(2);

                default: return(1);
                }
            })();

            if (Verbose.enabled)
            {
                Debug.Log(string.Format(
                              "AudioInput.BeginRecording for capture frame rate {0}", Time.captureFramerate));
            }

            if (audioSettings.m_PreserveAudio)
            {
                AudioRenderer.Start();
            }
        }
Пример #3
0
        public override void NewFrameReady(RecordingSession session)
        {
            if (!audioSettings.m_PreserveAudio)
            {
                return;
            }

            var sampleFrameCount = (uint)AudioRenderer.GetSampleCountForCaptureFrame();

            if (Verbose.enabled)
            {
                Debug.Log(string.Format("AudioInput.NewFrameReady {0} audio sample frames @ {1} ch",
                                        sampleFrameCount, m_ChannelCount));
            }

            ushort bufferCount =
#if RECORD_AUDIO_MIXERS
                (ushort)(audioSettings.m_AudioMixerGroups.Length + 1)
#else
                1
#endif
            ;

            m_BufferManager = new BufferManager(bufferCount, sampleFrameCount, m_ChannelCount);
            var mainBuffer = m_BufferManager.GetBuffer(0);

#if RECORD_AUDIO_MIXERS
            for (int n = 1; n < bufferCount; n++)
            {
                var group = audioSettings.m_AudioMixerGroups[n - 1];
                if (group.m_MixerGroup == null)
                {
                    continue;
                }

                var buffer = m_BufferManager.GetBuffer(n);
                AudioRenderer.AddMixerGroupRecorder(group.m_MixerGroup, buffer, group.m_Isolate);
            }
#endif

            AudioRenderer.Render(mainBuffer);
        }