PocAsioNativeDSDOut.cs 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using System.Threading;
  6. using System.Threading.Tasks;
  7. using Bmp.Core.Playback.Inputs;
  8. using Bmp.Core.Playback.Outputs.NAudioASIO;
  9. using NAudio.Wave;
  10. using AsioOut = Bmp.Core.Playback.Outputs.NAudioASIO.AsioOut;
  11. namespace Bmp.Poc.PoCs
  12. {
  13. internal class PocAsioNativeDSDOut
  14. {
  15. public static void MainFunc()
  16. {
  17. var dsfFilePath = Const.FileDsf;
  18. var asioDriverName = "Creative SB USB DSD ASIO Device";
  19. var inputSource = new DsfSourceStream(dsfFilePath);
  20. var outputDevice = new AsioOut(asioDriverName);
  21. outputDevice.SetNativeDsd();
  22. outputDevice.Init(inputSource);
  23. outputDevice.Play();
  24. while (outputDevice.PlaybackState == PlaybackState.Playing)
  25. {
  26. Console.WriteLine($"{inputSource.CurrentTime}/{inputSource.TotalTime}");
  27. Thread.Sleep(3000);
  28. //outputDevice.Pause();
  29. inputSource.CurrentTime = inputSource.CurrentTime.Add(TimeSpan.FromSeconds(30));
  30. //Thread.Sleep(100);
  31. //outputDevice.Play();
  32. }
  33. }
  34. }
  35. }