/// <summary> /// コンストラクタ。 /// 指定されたファイルを指定されたフォーマットでデコードし、内部にオンメモリで保管する。 /// </summary> public MediaFoundationOnMemoryWaveSource(VariablePath ファイルパス, CSCore.WaveFormat deviceFormat) : base(ファイルパス, deviceFormat) { // 読み込み&デコード完了まで待機。 if (!(this._デコードタスク.Wait(60 * 1000))) { throw new TimeoutException($"デコードタスクがタイムアウトしました。[{ファイルパス.変数付きパス}]"); } }
/// <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); }