/// <summary>
 ///		コンストラクタ。
 ///		指定されたファイルを指定されたフォーマットでデコードし、内部にオンメモリで保管する。
 /// </summary>
 public MediaFoundationOnMemoryWaveSource(VariablePath ファイルパス, CSCore.WaveFormat deviceFormat)
     : base(ファイルパス, deviceFormat)
 {
     // 読み込み&デコード完了まで待機。
     if (!(this._デコードタスク.Wait(60 * 1000)))
     {
         throw new TimeoutException($"デコードタスクがタイムアウトしました。[{ファイルパス.変数付きパス}]");
     }
 }
Пример #2
0
        /// <summary>
        /// Create a new OGG source.
        /// </summary>
        /// <param name="stream">OGG stream to make the OGG source from.</param>
        public NVorbisSource(Stream stream)
        {
            //Stream can't be null.
            if (stream == null)
            {
                throw new ArgumentNullException("stream");
            }

            //Make sure stream can be read.
            if (!stream.CanRead)
            {
                throw new ArgumentException("Stream is not readable.", "stream");
            }

            //Set the stream.
            _stream = stream;

            //Set up the reader.
            _vorbisReader = new VorbisReader(stream, false);

            //Create the wave format.
            _waveFormat      = new CSCore.WaveFormat(_vorbisReader.SampleRate, 32, _vorbisReader.Channels, CSCore.AudioEncoding.IeeeFloat);
            _waveFormatLinux = new CSCore.Linux.WaveFormat(_vorbisReader.SampleRate, 32, _vorbisReader.Channels, CSCore.Linux.AudioEncoding.IeeeFloat);
        }
 /// <summary>
 ///		コンストラクタ。
 ///		指定されたファイルを指定されたフォーマットでデコードし、内部にオンメモリで保管する。
 /// </summary>
 public MediaFoundationOnMemoryWaveSource(VariablePath ファイルパス, CSCore.WaveFormat deviceFormat)
     : base(ファイルパス, deviceFormat)
 {
 }
 /// <summary>
 /// Play (looping) silence, to make sure there always something captured.
 /// </summary>
 public void PlaySilenceLoop(string deviceName, CSCore.WaveFormat deviceFormat)
 {
     waveFormat = new WaveFormat(deviceFormat.SampleRate, deviceFormat.Channels);
     Play(GenerateSilence(60), deviceName);
 }