| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107 |
- var audio_context;
- var recorder;
- function startUserMedia(stream) {
- var input = audio_context.createMediaStreamSource(stream);
- recorder = new Recorder(input);
- }
- function startRecording(button) {
- recorder && recorder.record();
- // button.disabled = true;
- // button.nextElementSibling.disabled = false;
- }
- function stopRecording(button) {
- recorder && recorder.stop();
- // button.disabled = true;
- // button.previousElementSibling.disabled = false;
- createAudioDom();
- recorder.clear();
- }
- function voiceInit() {
- console.log("run init")
- try {
- // webkit shim
- window.AudioContext = window.AudioContext || window.webkitAudioContext;
- navigator.getUserMedia = navigator.getUserMedia || navigator.webkitGetUserMedia;
- window.URL = window.URL || window.webkitURL;
- audio_context = new AudioContext;
- console.log('Audio context set up.');
- console.log('navigator.getUserMedia ' + (navigator.getUserMedia ? 'available.' : 'not present!'));
- } catch (e) {
- console.log("err",e)
- // layer.msg('No web audio support in this browser!');
- }
- navigator.getUserMedia({ audio: true }, startUserMedia, function (e) {
- console.log('No live audio input: ' + e);
- // layer.msg('浏览器未找到麦克风');
- });
- };
- function createAudioDom(){
- // recorder && recorder.exportWAV(function (blob) {
- // var url = URL.createObjectURL(blob);
- // var au = document.createElement('audio');
- // au.controls = true;
- // au.src = url;
- // document.body.appendChild(au);
- // });
- }
- function wavUpload() {
- try{
- recorder && recorder.stop();
- createAudioDom();
- recorder &&recorder.exportWAV(function (wav_file) {
- console.log("wav_file",wav_file);
- if(wav_file.size < 1000){
- layer.msg("录音失败,请重试");
- recodeTime = 0;
- return false;
- }
- var formdata = new FormData(); // form 表单 {key:value}
- formdata.append("voiceFile", wav_file); // form input type="file"
- formdata.append("accessToken", accessToken);
- formdata.append("deviceSerial", deviceSerial);
- formdata.append("channelNo", channelNo);
- padding = true;
- $.ajax({
- url: "/api/lapp/voice/sendonce",
- type: 'post',
- processData: false,
- contentType: false,
- data: formdata,
- dataType: 'json',
- success: function (data) {
- console.log(data);
- if(data.code == '200'){
- countTime('sub', recodeTime + 2); // 延时
- }else if(data.code == "111001"){
- return false;
- } else {
- if(recodeTime !== 0){ // 仅需提示过短外其他错误
- layer.msg(data.msg || '发送失败,请稍后再试')
- }
- }
- //ocument.getElementById("player").src = "/get_audio/" + data.filename;
- padding = false;
- recodeTime = 0;
- },
- error: function(err){
- console.log("err",err);
- padding = false;
- recodeTime = 0;
- layer.msg("网络异常,请稍后再试");
- }
- })
- });
- recorder && recorder.clear();
- }catch(err){
- console.log(err);
- }
- }
|