unserver-unify
Version:
81 lines (73 loc) • 2.36 kB
JavaScript
;
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);
});
}
});