Convert byte array to wav file

后端 未结 3 2041
栀梦
栀梦 2021-02-04 07:11

I\'m trying to play a wav sound that stored in byte array called bytes. I know that I should convert the byte array to wav file and save it in my local drive then called the sav

相关标签:
3条回答
  • 2021-02-04 08:02

    Try this:

    System.IO.File.WriteAllBytes("yourfilepath.wav", bytes);
    
    0 讨论(0)
  • 2021-02-04 08:02

    Using NAudio and you can try something like:

    //var wavReader = new WaveFileReader(yourWavFilePath);
    //byte[] buffer = new byte[2 * wav1Reader.WaveFormat.SampleRate * wav1Reader.WaveFormat.Channels];
    byte[] buffer = YourWaveSoundByteArray;
    
    using ( WaveFileWriter writer = new WaveFileWriter(YourOutputFilePath, new WaveFormat( AssignWaveFormatYouWant /*wavReader.WaveFormat.SampleRate, 16, 2/*how many channel*/))
        )
    {
        //int bytesRead;
        //while ((bytesRead = wavReader.Read(buffer, 0, buffer.Length)) > 0)
        //{
            writer.Write(buffer, 0,  buffer.Length/*bytesRead*/);
        //}
    }
    
    0 讨论(0)
  • 2021-02-04 08:05

    You can use something like File.WriteAllBytes(path, data) or...

    ...Alternatively if you don't want to write the file you could convert the byte array to a stream and then play that...

    var bytes = File.ReadAllBytes(@"C:\WINDOWS\Media\ding.wav"); // as sample
    
    using (Stream s = new MemoryStream(bytes))
    {
        // http://msdn.microsoft.com/en-us/library/ms143770%28v=VS.100%29.aspx
        System.Media.SoundPlayer myPlayer = new System.Media.SoundPlayer(s);
        myPlayer.Play();
    }
    

    PK :-)

    0 讨论(0)
提交回复
热议问题