Commit 228c3579 authored by caicaicai's avatar caicaicai

修改

parent b19a45dc
......@@ -222,6 +222,7 @@ export default {
dialogVisible:false,
tonghuadisabled:false,
srcUrl:null,
resultBlob:null,
type:"mp3",
bitRate:16,
......@@ -692,59 +693,28 @@ export default {
};
var blob=this.recLogLast.res.blob;
this.blobToDataURI(blob);
/***方式一:将blob文件转成base64纯文本编码 ***/
var reader=new FileReader();
reader.onloadend=function(){
var postData="";
postData+="mime="+encodeURIComponent(blob.type);//告诉后端,这个录音是什么格式的,可能前后端都固定的mp3可以不用写
postData+="&upfile_b64="+encodeURIComponent((/.+;\s*base64\s*,\s*(.+)$/i.exec(reader.result)||[])[1]) //录音文件内容,后端进行base64解码成二进制
// postData+="mime="+encodeURIComponent(blob.type);//告诉后端,这个录音是什么格式的,可能前后端都固定的mp3可以不用写
// postData+="&upfile_b64="+encodeURIComponent((/.+;\s*base64\s*,\s*(.+)$/i.exec(reader.result)||[])[1]) //录音文件内容,后端进行base64解码成二进制
//postData = btoa(reader.result); //录音文件内容
postData = This.resultBlob; //录音文件内容
//发送语音数据
if (This.websocket.readyState == 1) { // that.websock.readyState = 1 表示连接成功,可以立即发送信息
This.websocketsend(`{"toUserId":"${This.carAllNumberString}","contentText":"${postData}","fromUserId":"${This.dialogTitle1}"}`);
//上传到数据库
// HttpReq.truckDispatching.recentNoticeAdd({noticeClass:This.dialogTitle1,flag:1,videoContent:postData}).then((res) => {
// if(res.code == 200){
// //近期通知列表
// HttpReq.truckDispatching.recentNoticeQuery({size:50,sort:'id,desc',}).then((res) => {
// if(res.code == 200){
// This.recentNoticeData = res.data.content;
// };
// })
// }else{
// this.$notify({
// title: res.msg,
// type: 'error',
// duration: 2500
// })
// }
// }).catch(function(error) { });
This.$notify({
title: '上传成功!',
type: 'success',
duration: 2500
});
} else if (This.websocket.readyState == 0) { // 表示正在连接,设置300ms后发送信息
setTimeout(function () {
This.websocketsend(`{"toUserId":"${This.carAllNumberString}","contentText":"${postData}","fromUserId":"${This.dialogTitle1}"}`);
// HttpReq.truckDispatching.recentNoticeAdd({noticeClass:This.dialogTitle1,flag:1,videoContent:postData}).then((res) => {
// if(res.code == 200){
// //近期通知列表
// HttpReq.truckDispatching.recentNoticeQuery({size:50,sort:'id,desc',}).then((res) => {
// if(res.code == 200){
// This.recentNoticeData = res.data.content;
// };
// })
// }else{
// this.$notify({
// title: res.msg,
// type: 'error',
// duration: 2500
// })
// }
// }).catch(function(error) { });
This.$notify({
title: '上传成功!',
type: 'success',
......@@ -755,22 +725,6 @@ export default {
This.initWebSocket();
setTimeout(function () {
This.websocketsend(`{"toUserId":"${This.carAllNumberString}","contentText":"${postData}","fromUserId":"${This.dialogTitle1}"}`);
// HttpReq.truckDispatching.recentNoticeAdd({noticeClass:This.dialogTitle1,flag:1,videoContent:postData}).then((res) => {
// if(res.code == 200){
// //近期通知列表
// HttpReq.truckDispatching.recentNoticeQuery({size:50,sort:'id,desc',}).then((res) => {
// if(res.code == 200){
// This.recentNoticeData = res.data.content;
// };
// })
// }else{
// this.$notify({
// title: res.msg,
// type: 'error',
// duration: 2500
// })
// }
// }).catch(function(error) { });
This.$notify({
title: '上传成功!',
type: 'success',
......@@ -780,6 +734,13 @@ export default {
}
};
reader.readAsDataURL(blob);
/***方式二:使用FormData用multipart/form-data表单上传文件***/
// let form = new FormData();
// form.append("upfile",blob,"recorder.mp3"); //和普通form表单并无二致,后端接收到upfile参数的文件,文件名为recorder.mp3
// console.log('form',form);
this.dialogVisible = false;
},
......@@ -871,19 +832,50 @@ export default {
this.dialogCancel();
this.waitDialogClickFn();
},
//解析base64编码到blob流
dataURItoBlob(base64Data) {
//console.log(base64Data);
var byteString;
if(base64Data.split(',')[0].indexOf('base64') >= 0)
byteString = atob(base64Data.split(',')[1]);//base64 解码
else{
byteString = unescape(base64Data.split(',')[1]);
}
var mimeString = base64Data.split(',')[0].split(':')[1].split(';')[0];//mime类型 -- image/png
// var arrayBuffer = new ArrayBuffer(byteString.length); //创建缓冲数组
// var ia = new Uint8Array(arrayBuffer);//创建视图
var ia = new Uint8Array(byteString.length);//创建视图
for(var i = 0; i < byteString.length; i++) {
ia[i] = byteString.charCodeAt(i);
}
var blob = new Blob([ia], {
type: mimeString
});
return blob;
},
//blob流转base64编码
blobToDataURI(blob) {
let that = this;
var reader = new FileReader();
reader.readAsDataURL(blob);
reader.onload = function(){
that.resultBlob = reader.result;
}
},
//播放语音
selectSituation(item){
console.log(item);
//this.recClose();
// Blobdata 就是后端返回给你的Blob数据
const reader = new FileReader();
const booo = new Blob([item.videoContent]);
reader.readAsArrayBuffer(booo);
reader.onload = (e) => {
//注意base64的最后面中括号和引号是不转译的
let bstr = this.dataURItoBlob(item.videoContent);
const reader1 = new FileReader();
reader1.readAsArrayBuffer(bstr);
reader1.onload = (e) => {
const bufer = e.srcElement.result;
const blob = this.addWavHeader(bufer, 16000, 16, 1);
this.srcUrl = window.URL.createObjectURL(blob);
this.srcUrl = (window.URL||webkitURL).createObjectURL(blob);
};
},
addWavHeader(samples, sampleRateTmp, sampleBits, channelCount) {
const dataLength = samples.byteLength;
......
......@@ -14,7 +14,7 @@
<el-table :data="tableData" v-loading="loading" border style="width:auto" :row-class-name="tableRowClassName">
<el-table-column prop="description" label="描述" align="center"></el-table-column>
<el-table-column prop="name" label="名称" align="center"></el-table-column>
<el-table-column prop="threshold" label="值" align="center"></el-table-column>
<el-table-column prop="threshold" label="值" align="center"></el-table-column>
<el-table-column label="操作" align="center" fixed="right">
<template slot-scope="scope">
<el-button size="mini" type="primary" icon="el-icon-edit" @click="toEdit(scope.row)"></el-button>
......@@ -39,8 +39,8 @@
<el-form-item label="名称" prop="name">
<el-input v-model="form.item.name" style="width:280px;" placeholder="请输入名称"/>
</el-form-item>
<el-form-item label="值" prop="threshold">
<el-input v-model="form.item.threshold" style="width:280px;" placeholder="请输入值"/>
<el-form-item label="值" prop="threshold">
<el-input v-model="form.item.threshold" style="width:280px;" placeholder="请输入值"/>
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
......@@ -81,7 +81,7 @@ export default {
{required: true, message: '请输入名称', trigger: 'blur' }
],
threshold: [
{required: true, message: '请输入', trigger: 'blur' }
{required: true, message: '请输入', trigger: 'blur' }
],
},
}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment