Я также провел много часов, пытаясь добиться того, что вы пытаетесь сделать здесь. Я смог успешно загрузить данные аудиоблока только после реализации FileReader и вызова readAsDataURL(), чтобы преобразовать blob в данные: URL-адрес, представляющий данные файла (проверьте MDN FileReader). Также вы должны POST, а не GET FormData. Вот фрагмент моего рабочего кода. Наслаждайтесь!
function uploadAudioFromBlob(assetID, blob)
{
var reader = new FileReader();
// this is triggered once the blob is read and readAsDataURL returns
reader.onload = function (event)
{
var formData = new FormData();
formData.append('assetID', assetID);
formData.append('audio', event.target.result);
$.ajax({
type: 'POST'
, url: 'MyMvcController/MyUploadAudioMethod'
, data: formData
, processData: false
, contentType: false
, dataType: 'json'
, cache: false
, success: function (json)
{
if (json.Success)
{
// do successful audio upload stuff
}
else
{
// handle audio upload failure reported
// back from server (I have a json.Error.Msg)
}
}
, error: function (jqXHR, textStatus, errorThrown)
{
alert('Error! '+ textStatus + ' - ' + errorThrown + '\n\n' + jqXHR.responseText);
// handle audio upload failure
}
});
}
reader.readAsDataURL(blob);
}
спасибо, брат. Я проверю его сегодня вечером! @cjroe – Todd
@Todd сделал это для вас? Я пытаюсь сделать то же самое, см. Http://stackoverflow.com/questions/15795678/upload-audio-recorded-in-browser-using-html5 – Adrian
. Я забыл выбрать этот ответ как правильный, но да, я так давно забыл, если это нужно для настройки. Я уверен, что этот код работал как шарм! – Todd