UNPKG

unserver-unify

Version:

148 lines (145 loc) 4.29 kB
'use strict'; 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) {} } });