我使用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();
我错过了什么?