当前位置: 首页>>代码示例>>C#>>正文


C# BufferedWaveProvider.ToSampleProvider方法代码示例

本文整理汇总了C#中NAudio.Wave.BufferedWaveProvider.ToSampleProvider方法的典型用法代码示例。如果您正苦于以下问题:C# BufferedWaveProvider.ToSampleProvider方法的具体用法?C# BufferedWaveProvider.ToSampleProvider怎么用?C# BufferedWaveProvider.ToSampleProvider使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在NAudio.Wave.BufferedWaveProvider的用法示例。


在下文中一共展示了BufferedWaveProvider.ToSampleProvider方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。

示例1: Play

        public void Play()
        {
            asioOut = new AsioOut(settings.DeviceNumber);

            inputAudioBufferedWaveProvider = new BufferedWaveProvider(WaveFormat.CreateIeeeFloatWaveFormat(Convert.ToInt32(settings.SampleRate), 1));
            incomingAudioBufferedWaveProvider = new BufferedWaveProvider(WaveFormat.CreateIeeeFloatWaveFormat(Convert.ToInt32(settings.SampleRate), 1));

            inputAudioPanningProvider = new PanningSampleProvider(inputAudioBufferedWaveProvider.ToSampleProvider());
            incomingAudioPanningProvider = new PanningSampleProvider(incomingAudioBufferedWaveProvider.ToSampleProvider());

            inputAudioPanningProvider.Pan = 0.0f;

            mixingProvider = new MixingSampleProvider(WaveFormat.CreateIeeeFloatWaveFormat(Convert.ToInt32(settings.SampleRate), 2));

            mixingProvider.AddMixerInput(inputAudioPanningProvider);
            mixingProvider.AddMixerInput(incomingAudioPanningProvider);
            mixingProvider.ReadFully = true;

            asioOut.InitRecordAndPlayback(new SampleToWaveProvider(mixingProvider), 2, Convert.ToInt32(settings.SampleRate));
            incomingBytes = new byte[Settings.GetInstance().BufferSize * 4];
            asioOut.AudioAvailable += AsioOut_AudioAvailable;
            asioOut.Play();
            connection.Connected += delegate (object source, EventArgs args)
            {
                inputAudioPanningProvider.Pan = +1.0f;
                incomingAudioPanningProvider.Pan = -1.0f;
                isAudioReceiving = true;
                isNewAudioAvailable = false;
                receivingAudio.Start();
            };
            connection.Disconnected += delegate (object source, EventArgs args)
            {
                inputAudioPanningProvider.Pan = 0.0f;
                isAudioReceiving = false;
            };
            connection.StartMessageReceiving();
        }
开发者ID:bisquitthe,项目名称:RockNRolla,代码行数:37,代码来源:Audio.cs

示例2: DecompressFrame

        private int DecompressFrame(Mp3Frame frame, byte[] buffer)
        {
            // decode frame
            if (_decompressor == null)
            {
                WaveFormat waveFormat = new Mp3WaveFormat(frame.SampleRate, frame.ChannelMode == ChannelMode.Mono ? 1 : 2, frame.FrameLength, frame.BitRate);
                _decompressor = new AcmMp3FrameDecompressor(waveFormat);

                _waveProvider = new BufferedWaveProvider(_decompressor.OutputFormat);
                _waveProvider.BufferDuration = TimeSpan.FromSeconds(5);

                _channels = _waveProvider.WaveFormat.Channels;
                
                _sampleProvider = _waveProvider.ToSampleProvider();
            }

            return _decompressor.DecompressFrame(frame, buffer, 0);
        }
开发者ID:klad,项目名称:splitstream,代码行数:18,代码来源:Recorder.cs


注:本文中的NAudio.Wave.BufferedWaveProvider.ToSampleProvider方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。