Nguyen Khang
Nguyen Khang

Reputation: 11

How to convert string data:audio/ogg;base64 to file wav in C#

I have a string like this:

"data:audio/ogg;base64,T2dnUwACAAAAAAAAAAAbYwAAAAAAABodbEQBE09wdXNIZWFkAQE4AYA+AAAAAABPZ2dTAAAAAAAAAAAAABtjAAABAAAASJutcAE4T3B1c1RhZ3...h3KrMzThXiwEUg="

This string I get by an AJAX post using the following code:

var reader = new window.FileReader();
reader.readAsDataURL(blob);
reader.onloadend = function() {
    var base64Data = reader.result;
    $.ajax({
        url: "/Home/ConvertToWav",
        type: "POST",
        data: { base64Data : base64Data }
    });
};

I want to convert this string to file wav via C# in action ConvertToWav.

Upvotes: 1

Views: 3414

Answers (1)

user2587132
user2587132

Reputation:

Try using Alvas.Audio

byte[] byteAry= Convert.FromBase64String(myBase64String);
MemoryStream stream = new MemoryStream(byteAry);
WaveReader wr = new WaveReader(stream);
IntPtr format = wr.ReadFormat();
byte[] data = wr.ReadData();
WaveWriter ww = new WaveWriter(File.Create(fileName + ".wav"),AudioCompressionManager.FormatBytes(format));
ww.WriteData(data);
ww.Close();

Upvotes: 2

Related Questions