上传javascript blob wav文件并压缩

时间:2015-08-28 21:35:00

标签: javascript html5 audio asp.net-web-api2 html5-audio

我使用Recorderjs lib来记录来自浏览器的音频,所以,我在某个变量上有wav blob。 要上传到服务器,请使用FormData将blob转换为base64字符串:

var reader = new FileReader();                    

reader.onload = function (event) {
    toUpload.append("audio", event.target.result);
    $.ajax(ajaxConfig); // my ajax call
}

reader.readAsDataURL(myBlob);

当文件到达服务器时,我使用NAudio.Lame压缩为mp3格式(recordjsmp3非常慢,想在服务器端执行此操作):

using (var ms = new MemoryStream(myFile))
using (var wav = new WaveFileReader(ms))

.net抛出异常:

FormatException: Not a WAVE file - no RIFF header

好的,让我们尝试将文件保存在磁盘上以便在Windows Media Player上播放:

File.WriteAllBytes("c:\\test.wav", myFile);

当我尝试播放保存在磁盘上的文件时,媒体播放器会说该文件已损坏。

我的端点是Asp.Net web api,我这样做是为了获取字节数组:

var multipart = await Request.Content.ReadAsMultipartAsync();
multipart.Contents.SingleOrDefault(f => f.Headers.ContentDisposition.Name.ToLower().Contains("audio")).ReadAsByteArrayAsync();

我错过了什么?

0 个答案:

没有答案