unserver-unify
Version:
148 lines (145 loc) • 4.29 kB
JavaScript
;
angular.module('bamboo').controller('HTML5Controller', function(ApiService, $scope, ScormService,CommonService, $sce, $timeout) {
var self = this;
/* $scope.lmsready = false;
var api = ScormService.scormLocal('123','123', null, function() {
console.log("---- this one ---");
$timeout(function(){
$scope.lmsready = true;
},10);
});
window.API=window.API_1484_11=ScormService.API;
console.log(window); */
/*this.sendText = function() {
console.log(self.text);
var info = {
action: 'getaudiourl',
text: self.text,
}
ApiService.post('/voice', info).then(function(result) {
console.log(result);
if (result.data.success) {
var audiourl = result.data.data;
console.log(audiourl);
self.audiourl = $sce.trustAsResourceUrl(audiourl);
}
})
} */
function sortJson() {}
this.loadJson = function(file) {
var reader = new FileReader();
reader.readAsText(file, 'UTF-8');
// console.log(reader);
reader.onload = function(result) {
var temp = JSON.parse(result.target.result);
// console.log(temp);
var arrays = [];
for (var key in temp) {
var info = {
key: key,
val: temp[key]
}
arrays.push(info);
}
arrays.sort(function(a, b) {
//console.log(a);
// console.log(b);
if (a.key < b.key) return -1;
if (a.key > b.key) return 1;
return 0
})
// console.log(arrays);
var temp2 = {};
for (var i = 0; i < arrays.length; i++) {
var item = arrays[i];
temp2[item.key] = item.val;
}
var string = JSON.stringify(temp2);
console.log(string);
}
}
var myAudio;
function shootAudio(callback) {
var audioObj = {
audio: true,
// video: true,
}
if (myAudio) {
myAudio.pause();
}
var errBack = function(error) {
return callback(false, error);
};
navigator.getUserMedia = (navigator.getUserMedia || navigator.webkitGetUserMedia || navigator.mozGetUserMedia || navigator.msGetUserMedia);
if (navigator.getUserMedia) { // Standard
navigator.getUserMedia(audioObj, function(stream) {
console.log("audio detected");
callback(stream);
}, errBack);
} else {
console.log("--- not supported---");
return callback(false, "Not Supported Browser");
}
}
this.recordingMode = 'idle';
var _stream;
this.recordAudio = function() {
self.index = 999;
shootAudio(function(stream) {
_stream = stream;
$timeout(function() {
window.audioVideoRecorder = window.RecordRTC(stream, {
type: 'audio',
mimeType: 'audio/wav',
// sampleRate:22050,
// numberOfAudioChannels:1,
// mimeType: 'video/webm', // or video/mp4 or audio/ogg
});
window.audioVideoRecorder.startRecording();
self.recordingMode = "recording";
}, 200)
});
}
this.playbacksrc;
this.blob;
this.sendToDebug=function(){
var text="程序员开发";
var lang="cn";
CommonService.SpeechEQ(text,lang,self.blob,function(result){
console.log(result);
})
}
this.stopRecording = function() {
self.index = 999;
self.recordingMode = 'idle';
window.audioVideoRecorder.stopRecording(function(url) {
// console.log(_stream);
// _stream.stop();
self.blob = window.audioVideoRecorder.getBlob();
self.blob.lastModifiedDate = new Date();
self.blob.name = (new Date()).getTime().toString() + ".wav";
$timeout(function() {
self.playbacksrc = url;
}, 500);
});
}
this.playUserAudio = function() {
if (!self.playbacksrc) {
return;
}
self.index = 999;
try {
// if (myAudio) {
// myAudio.pause();
// }
if(!myAudio){
myAudio = new Audio(self.playbacksrc);
}else{
myAudio.pause();
myAudio.src=filename;
}
// myAudio = new Audio(self.playbacksrc);
myAudio.play();
} catch (e) {}
}
});