2015-05-03 1 views
2

Помещение: Я заметил там другие подобные вопросы, но похоже, что у интересных нет ответов. например Have a blob for a wav file on client side, how do I send it as a wav file to the server?Blob, содержащий WAV-файл и WAV-файл: какая разница и как конвертировать друг в друга?

Я использую RecordRTC, чтобы получить WAV-файл на голосовом входе пользователя.

Что я получаю это Blob (двоичный файл) печатается (на консоли), как:

Blob {} 
    size: 131116 
    type: "audio/wav" 
    __proto__ 

Я понимаю, что Blob содержит аудиопоток WAV, но WAV содержится на Blob, а не Контейнер WAV (т. Е. WAV-файл). Право?

Итак, Как извлечь поток WAV, например. отправить его на сервер через вызов ajax/http?

Я не против использования HTTP или NodeJS-скрипта, если это необходимо.

EDIT Я попробую то, что было предложено в один ответ. Поскольку я делаю это в AngularJS (я еще новичок в этом), я хотел бы сделать что-то вроде ...

services.sendAudioMessage(recordedAudio) 
    .then(function (data) { 
} 

где услуги определяется заводом:

.factory('services', function($http,$q) { 
    return { 
     sendAudioMessage: function (audioMessage) { 
      return $http.jsonp('http://.../api.php?callback=JSON_CALLBACK', { 
       params: { 
        audio: audioMessage 
       } 
      }) 
       .then(function (response) { 
        if (typeof response.data === 'object') { 
         return response.data; 
        } else { 
         return $q.reject(response.data); 
        } 
       }, function (response) { 
        return $q.reject(response.data); 
       }); 
     } 
    }; 
});  

, а не с помощью вызова Ajax, как предложено в: How can javascript upload a blob?

ответ

2

A Blob просто двоичный объект в памяти. RecordRTC фактически хранит полный WAV-файл с заголовками WAV в Blob для вас. Это не просто образцы PCM, это обычный WAV-файл.

Вы можете сделать что-то с этими данными напрямую или загрузить на свой сервер, как и любой другой блок. Смотри также: https://stackoverflow.com/a/13333478/362536

+0

большое спасибо Brad. Я попробую это время (и тогда я обязательно приму ответ). Как вы могли бы объяснить, как это сделать, используя помещения AngularJS? (Я обновлю свой вопрос прямо сейчас) – dragonmnl

+0

только что отредактировал :) спасибо – dragonmnl

+0

Извините, я не угловатый парень, но вам действительно не нужен Угловой для этой части вашего проекта. – Brad

 Смежные вопросы

  • Нет связанных вопросов^_^