public void Start()
{
if (thread == null)
{
// check source
if (String.IsNullOrEmpty(fileName))
throw new ArgumentException("Audio source is not specified");
if (!System.IO.File.Exists(fileName))
throw new ArgumentException("Source file does not exists");
framesReceived = 0;
bytesReceived = 0;
// create events
stopEvent = new ManualResetEvent(true);
// create and start new thread
thread = new Thread(new ThreadStart(WorkerThread));
thread.Name = fileName; // mainly for debugging
thread.Start();
}
}
public void WaveFileAudioSourceConstructorTest() { string fileName = @"..\..\..\Accord.Tests\Accord.Tests.Audio\Resources\Grand Piano - Fazioli - major A middle.wav"; WaveFileAudioSource target = new WaveFileAudioSource(fileName); Signal s = null; target.NewFrame += delegate(object sender, NewFrameEventArgs e) { if (s == null) s = e.Signal; Assert.AreEqual(s.SampleRate, 44100); Assert.AreEqual(s.Channels, 2); Assert.AreEqual(s.Length, 8192); Assert.AreEqual(s.Channels * s.Length, s.Samples); }; target.Start(); target.WaitForStop(); Assert.AreEqual(180224, target.FramesReceived); Assert.AreEqual(705600, target.BytesReceived); }