.Net How to directly play audio tapes

I have audio samples extracted through NAudio, I know the parameters:

  • channels
  • byte per sample
  • discretization

How to play these samples using .Net api / or another .Net library

Here is the code:

openFileDialog1.ShowDialog(); using (var reader = new Mp3FileReader(openFileDialog1.FileName)) { var pcmLength = (int)reader.Length; var _leftBuffer = new byte[pcmLength / 2]; var buffer = new byte[pcmLength]; var bytesRead = reader.Read(buffer, 0, pcmLength); int index = 0; for (int i = 0; i < bytesRead; i += 4) { //extracting only left channel _leftBuffer[index] = buffer[i]; index++; _leftBuffer[index] = buffer[i + 1]; index++; } // How to play _leftBuffer (Single channel, 2 bytes per sample, 44100 samples per secound) } 
+6
source share
2 answers

YES, I found a solution: Low-level audio player in C #

Completely processed code:

 public partial class Form1 : Form { private byte[] _leftBuffer; private BiQuadFilter _leftFilter; private BiQuadFilter _rightFilter; public Form1() { InitializeComponent(); } private void button1_Click(object sender, EventArgs e) { openFileDialog1.ShowDialog(); using (var reader = new Mp3FileReader(openFileDialog1.FileName)) { var pcmLength = (int)reader.Length; _leftBuffer = new byte[pcmLength / 2]; var buffer = new byte[pcmLength]; var bytesRead = reader.Read(buffer, 0, pcmLength); int index = 0; for (int i = 0; i < bytesRead; i += 4) { _leftBuffer[index] = buffer[i]; index++; _leftBuffer[index] = buffer[i + 1]; index++; } var player = new WaveLib.WaveOutPlayer(-1, new WaveLib.WaveFormat(44100, 16, 1), _leftBuffer.Length, 1, (data, size) => { byte[] b = _leftBuffer; System.Runtime.InteropServices.Marshal.Copy(b, 0, data, size); }); } } } 
+1
source

First, you need to implement IWaveProvider or use one of the IWaveProvider implementations that comes with NAudio, for example WaveProvider16 . Then initialize the WaveOut object with IWaveProvider using WaveOut.Init(IWaveProvider Provider) and finally call WaveOut.Play() .

+1
source

All Articles