|
@@ -320,14 +320,17 @@
|
|
|
</div>
|
|
|
</div>
|
|
|
<div v-show="sentIndex == index" class="Soundrecord-content">
|
|
|
- <Soundrecord
|
|
|
- @handleWav="handleWav"
|
|
|
- type="promax"
|
|
|
- class="luyin-box"
|
|
|
- @handleParentPlay="handleParentPlay"
|
|
|
- />
|
|
|
- <div>
|
|
|
- <AudioLine
|
|
|
+ <div class="Soundrecord-content-inner">
|
|
|
+ <Soundrecord
|
|
|
+ @handleWav="handleWav"
|
|
|
+ type="promax"
|
|
|
+ class="luyin-box"
|
|
|
+ @getWavblob="getWavblob"
|
|
|
+ @handleParentPlay="handleParentPlay"
|
|
|
+ @sentPause="sentPause"
|
|
|
+ />
|
|
|
+ <div class="compare-box">
|
|
|
+ <!-- <AudioLine
|
|
|
:mp3="curQue.mp3_list[0].url"
|
|
|
:getCurTime="getCurTime"
|
|
|
:ref="'audioLine' + index"
|
|
@@ -338,7 +341,21 @@
|
|
|
:bg="curQue.wordTime[index].bg"
|
|
|
:ed="curQue.wordTime[index].ed"
|
|
|
@handleChangeStopAudio="handleChangeStopAudio"
|
|
|
- />
|
|
|
+ /> -->
|
|
|
+ <Audio-compare
|
|
|
+ :themeColor="themeColor"
|
|
|
+ :index="index"
|
|
|
+ :sentIndex="sentIndex"
|
|
|
+ :url="curQue.mp3_list[0].id"
|
|
|
+ :bg="curQue.wordTime[index].bg"
|
|
|
+ :ed="curQue.wordTime[index].ed"
|
|
|
+ :wavblob="wavblob"
|
|
|
+ :getCurTime="getCurTime"
|
|
|
+ :sentPause="sentPause"
|
|
|
+ :isRecord="isRecord"
|
|
|
+ :handleChangeStopAudio="handleChangeStopAudio"
|
|
|
+ />
|
|
|
+ </div>
|
|
|
</div>
|
|
|
</div>
|
|
|
</div>
|
|
@@ -352,13 +369,15 @@ import { timeStrToSen } from "@/utils/index";
|
|
|
import AudioLine from "../AudioLine.vue";
|
|
|
import Soundrecord from "../../preview/Soundrecord.vue"; // 录音模板
|
|
|
import RoleChs from "./RoleChs.vue";
|
|
|
+import AudioCompare from "../AudioCompare.vue";
|
|
|
export default {
|
|
|
name: "ArticleView",
|
|
|
- props: ["curQue", "colorBox", "noFont"],
|
|
|
+ props: ["curQue", "colorBox", "noFont", "themeColor"],
|
|
|
components: {
|
|
|
AudioLine,
|
|
|
Soundrecord,
|
|
|
RoleChs,
|
|
|
+ AudioCompare,
|
|
|
},
|
|
|
filters: {
|
|
|
handlePinyin(wordsList) {
|
|
@@ -386,6 +405,7 @@ export default {
|
|
|
},
|
|
|
data() {
|
|
|
return {
|
|
|
+ wavblob: null,
|
|
|
resObj: null,
|
|
|
curTime: 0, //单位s
|
|
|
chsFhList: [",", "。", "“", ":", "》", "《", "?", "!", ";"],
|
|
@@ -417,6 +437,7 @@ export default {
|
|
|
isShowPY: true,
|
|
|
isRepeat: false,
|
|
|
currSent: null, //当前句子的时间
|
|
|
+ isRecord: false,
|
|
|
};
|
|
|
},
|
|
|
computed: {
|
|
@@ -428,9 +449,24 @@ export default {
|
|
|
return playing;
|
|
|
},
|
|
|
},
|
|
|
- watch: {},
|
|
|
+ watch: {
|
|
|
+ sentIndex: {
|
|
|
+ handler: function (newVal, oldVal) {
|
|
|
+ if (newVal != oldVal) {
|
|
|
+ this.wavblob = "";
|
|
|
+ }
|
|
|
+ },
|
|
|
+ deep: true,
|
|
|
+ },
|
|
|
+ },
|
|
|
//方法集合
|
|
|
methods: {
|
|
|
+ getWavblob(wavblob) {
|
|
|
+ this.wavblob = wavblob;
|
|
|
+ },
|
|
|
+ sentPause(isRecord) {
|
|
|
+ this.isRecord = isRecord;
|
|
|
+ },
|
|
|
getCurTime(curTime) {
|
|
|
let _this = this;
|
|
|
if (_this.isRepeat) {
|
|
@@ -813,17 +849,26 @@ export default {
|
|
|
}
|
|
|
}
|
|
|
.Soundrecord-content {
|
|
|
- padding: 0px 0px 8px 60px;
|
|
|
- display: flex;
|
|
|
- justify-content: flex-start;
|
|
|
- align-items: center;
|
|
|
- .luyin-box {
|
|
|
- width: 280px;
|
|
|
- padding: 8px 12px;
|
|
|
- border: 1px solid rgba(0, 0, 0, 0.1);
|
|
|
+ padding: 0px 0px 8px 68px;
|
|
|
+
|
|
|
+ &-inner {
|
|
|
+ display: flex;
|
|
|
+ justify-content: flex-start;
|
|
|
+ align-items: center;
|
|
|
+ width: 304px;
|
|
|
border-radius: 8px;
|
|
|
background: #ffffff;
|
|
|
- margin-right: 16px;
|
|
|
+ padding: 4px 12px;
|
|
|
+ border: 1px solid rgba(0, 0, 0, 0.1);
|
|
|
+ .luyin-box {
|
|
|
+ width: 280px;
|
|
|
+ }
|
|
|
+ .compare-box {
|
|
|
+ height: 32px;
|
|
|
+ display: flex;
|
|
|
+ justify-content: center;
|
|
|
+ align-items: center;
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
}
|