2014-09-09 22 views
5

Szukam prostego rozwiązania do nagrywania pliku audio i przesłania go do s3.Plik dźwiękowy AngularJS + HTML5

Moi wyszukiwarek internetowych wymyślić znaleźć:

WebRTC-Experiment która jest najbardziej popuplar rozwiązanie mogę znaleźć.

to też przykład pracuje w następującym linkiem: https://www.webrtc-experiment.com/RecordRTC/

Znalazłem również ngCamRecorder który nie był obsługiwany przez Firefoksa jeszcze.

Szukam prostego rozwiązania + przykład pracy i sugestii.

  1. Które rozwiązanie jest najbardziej popularne w przypadku AngularJS?

  2. jeśli możesz podać własny przykład lub link do działającego przykładu, z którego mogę skorzystać.

  3. jeśli używałeś również S3, chciałbym wiedzieć, jak możesz przesłać plik do S3 i uzyskać link do kontrolera.

Rozwiązanie, które znalazłem, błąd wykonania i przykład działający bez wyjaśnienia samego kodu. Chciałbym również wiedzieć, jak przekazać go do s3.

Jest to kod I wdrożone na przykładzie:

$scope.start_recording = function() 
{ 
    navigator.getUserMedia(session, function (mediaStream) { 
     window.recordRTC = RecordRTC(MediaStream); 
     recordRTC.startRecording(); 
    }, function(error){console.log(error)}); 
}; 

$scope.stop_recording = function() 
{ 
    navigator.getUserMedia({audio: true}, function(mediaStream) { 
     window.recordRTC = RecordRTC(MediaStream); 
     recordRTC.startRecording(); 
    }); 
}; 

To po prostu wyrzucić błąd: niezdefiniowane nie jest funkcją na linii recordrtc.js 641

if(!mediaStream.getAudioTracks().length) throw 'Your stream has no audio tracks.'; 

oczywiście mediaStrem jest null.

Dzięki.

Odpowiedz

0

Mam ten sam problem i wymyśliłem go. Argument funkcji w funkcji success nawigacji.getUserMedia() powinien mieć postać "MediaStream" zamiast "mediaStream".

5

Do tego jest opakowanie AngularJS, to prosta dyrektywa, która obsługuje HTML5 (RecorderJS), Cordova Media i Flash.

Użycie jest proste

<ng-audio-recorder audio-model="someModel" auto-start="false"> 
    <!-- controls --> 
    <button ng-click='recorder.startRecording()'>Start</button> 
    <button ng-click='recorder.stopRecording()'>Stop</button> 
</ng-audio-recorder> 

Można zobaczyć pełne wykorzystanie tutaj:

https://github.com/logbon72/angular-recorder

+0

Pełne ujawnienie: Pracowałem na tej wtyczki, ja rozwidlony go z innego projektu zapisu. – tlogbon

+0

Projekt, nad którym pracuję, wykorzystuje npm z przeglądarką zamiast z altaną. Jak mogę zintegrować ten moduł z moją aplikacją? –