UNPKG

unserver-unify

Version:

81 lines (73 loc) 2.36 kB
'use strict'; angular.module('bamboo') .controller('AudioRecordCtrl', function($scope,$uibModalInstance,$sce,$timeout) { var _self = this; $scope.uploadRecordingAudio=function(){ console.log(_mp3_record_file); $uibModalInstance.close({ result: true, file:_mp3_record_file, }); } this.allowrecord = true; $scope.uploadRecordingAudio = function() { var blob = window.audioVideoRecorder.getBlob(); blob.name = (new Date()).getTime().toString() + ".webm"; blob.lastModifiedDate = new Date(); blob.duration = document.getElementById('audioplayback').duration; $uibModalInstance.close({ result: true, file: blob, }); } function shootAudio(callback) { var audioObj = { audio: true, video: true, } var errBack = function(error) { return callback(false, error); }; navigator.getUserMedia = (navigator.getUserMedia || navigator.webkitGetUserMedia || navigator.mozGetUserMedia || navigator.msGetUserMedia); if (navigator.getUserMedia) { // Standard console.log("--chrome--"); navigator.getUserMedia(audioObj, function(stream) { console.log("audio detected"); callback(stream); }, errBack); } else { console.log("--- not supported---"); return callback(false, "Not Supported Browser"); } } var _stream; this.getRecordAudio = function() { _self.allowrecord = false; shootAudio(function(stream) { _stream=stream; $timeout(function() { window.audioVideoRecorder = window.RecordRTC(stream, { type: 'audio', // sampleRate:22050, // numberOfAudioChannels:1, // mimeType: 'video/webm', // or video/mp4 or audio/ogg }); window.audioVideoRecorder.startRecording(); // return callback(stream); $scope.stopflag = true; }, 200) }); } this.stopRecording = function() { window.audioVideoRecorder.stopRecording(function(url) { _stream.stop(); $scope.stopflag = false; $timeout(function() { $scope.playbacksrc = $sce.trustAsResourceUrl(url); $scope.playback = true; _self.allowrecord = true; $scope.readyForUpload = true; }, 500); }); } });