|
@@ -135,14 +135,26 @@
|
|
|
</div>
|
|
|
<a @click="handleDelCourseResource()"><i class="el-icon-delete"></i></a>
|
|
|
</div>
|
|
|
-
|
|
|
</el-form-item>
|
|
|
<el-form-item label="课程音频" prop="audioResource" v-else>
|
|
|
<upload :datafileList="createCourseForm.audioResource" :changeFillId="handleAvatarSuccess" :fileName="'courseAudio'" uploadType="mp3" :filleNumber="1" :showList="true" />
|
|
|
- <li v-for="(itemR,indexR) in createCourseForm.audioResource" :key="indexR">
|
|
|
- <a @click="handlePreview(itemR)"><svg-icon icon-class="mp3" class="icon-logo"></svg-icon><span>{{itemR.name}}</span></a>
|
|
|
- <i class="el-icon-delete" @click="handleDelCourseResource()"></i>
|
|
|
- </li>
|
|
|
+ <ul v-if="createCourseForm.audioResource.length>0" class="resource-list">
|
|
|
+ <li v-for="(itemR,indexR) in createCourseForm.audioResource" :key="indexR">
|
|
|
+ <a @click="PlayAudio">
|
|
|
+ <svg-icon icon-class="mp3" class="icon-logo"></svg-icon><span>{{itemR.name}}</span>
|
|
|
+ <i class="el-icon-loading" v-if="audio.loading"></i>
|
|
|
+ <svg-icon v-if="audio.playing&&!audio.loading" icon-class="pause" className="icon-svg"></svg-icon>
|
|
|
+ <svg-icon v-if="!audio.playing&&!audio.loading" icon-class="play" className="icon-svg"></svg-icon>
|
|
|
+ <audio
|
|
|
+ id="createRecorded"
|
|
|
+ ref="createRecorded"
|
|
|
+ :src="createCourseForm.file_url"
|
|
|
+ preload="metadata"
|
|
|
+ />
|
|
|
+ </a>
|
|
|
+ <i class="el-icon-delete" @click="handleDelCourseResource()"></i>
|
|
|
+ </li>
|
|
|
+ </ul>
|
|
|
</el-form-item>
|
|
|
<el-form-item label="课节信息" prop="intro">
|
|
|
<Editor
|
|
@@ -374,6 +386,13 @@ export default {
|
|
|
file_preview_url: 'https://docpreview.utschool.cn',
|
|
|
loading: false,
|
|
|
player: null,
|
|
|
+ audio: {
|
|
|
+ // 该字段是音频是否处于播放状态的属性
|
|
|
+ playing: false,
|
|
|
+ loading: false,
|
|
|
+ playbackRate: 1,
|
|
|
+ volume: 100
|
|
|
+ },
|
|
|
}
|
|
|
},
|
|
|
//计算属性 类似于data概念
|
|
@@ -448,6 +467,16 @@ export default {
|
|
|
this.createCourseForm.audioResource = fileList
|
|
|
this.createCourseForm.file_id = fileList[0]&&fileList[0].response&&fileList[0].response.file_info_list&&fileList[0].response.file_info_list[0]?fileList[0].response.file_info_list[0].file_id:''
|
|
|
this.createCourseForm.file_url = fileList[0]&&fileList[0].response&&fileList[0].response.file_info_list&&fileList[0].response.file_info_list[0]?fileList[0].response.file_info_list[0].file_url:''
|
|
|
+ this.audio = {
|
|
|
+ // 该字段是音频是否处于播放状态的属性
|
|
|
+ playing: false,
|
|
|
+ loading: false,
|
|
|
+ playbackRate: 1,
|
|
|
+ volume: 100
|
|
|
+ }
|
|
|
+ setTimeout(() => {
|
|
|
+ this.handleLoadAudio()
|
|
|
+ }, 500);
|
|
|
}else if(name==='courseResource'){
|
|
|
fileList.forEach(item=>{
|
|
|
if(item.response&&item.response.file_info_list&&item.response.file_info_list[0]){
|
|
@@ -499,7 +528,14 @@ export default {
|
|
|
intro:'',
|
|
|
resource:[]
|
|
|
}
|
|
|
- this.player.destroy()
|
|
|
+ if(this.player) this.player.destroy()
|
|
|
+ this.audio = {
|
|
|
+ // 该字段是音频是否处于播放状态的属性
|
|
|
+ playing: false,
|
|
|
+ loading: false,
|
|
|
+ playbackRate: 1,
|
|
|
+ volume: 100
|
|
|
+ }
|
|
|
},
|
|
|
// 保存课节
|
|
|
handleSaveCourse(formName){
|
|
@@ -713,14 +749,25 @@ export default {
|
|
|
item.type = this.handleJudgeType(type)
|
|
|
})
|
|
|
form.resource = res.resource_file_list
|
|
|
- this.player = new Player({
|
|
|
- id: 'video-box',
|
|
|
- url: res.lb_course_cs_item.file_url,
|
|
|
- width: '100%',
|
|
|
- height: '100%',
|
|
|
- cssFullscreen: false,
|
|
|
- poster: '', // 封面图
|
|
|
- });
|
|
|
+ if(this.organizeForm.courseType===0){
|
|
|
+ this.player = new Player({
|
|
|
+ id: 'video-box',
|
|
|
+ url: res.lb_course_cs_item.file_url,
|
|
|
+ width: '100%',
|
|
|
+ height: '100%',
|
|
|
+ cssFullscreen: false,
|
|
|
+ poster: '', // 封面图
|
|
|
+ });
|
|
|
+ }else{
|
|
|
+ this.audio = {
|
|
|
+ // 该字段是音频是否处于播放状态的属性
|
|
|
+ playing: false,
|
|
|
+ loading: false,
|
|
|
+ playbackRate: 1,
|
|
|
+ volume: 100
|
|
|
+ }
|
|
|
+ this.handleLoadAudio()
|
|
|
+ }
|
|
|
}
|
|
|
})
|
|
|
.catch(() => {
|
|
@@ -733,8 +780,41 @@ export default {
|
|
|
this.createCourseForm.videoResource = []
|
|
|
this.createCourseForm.file_id = ''
|
|
|
this.createCourseForm.file_url = ''
|
|
|
- this.player.destroy()
|
|
|
- }
|
|
|
+ if(this.player) this.player.destroy()
|
|
|
+ this.audio = {
|
|
|
+ // 该字段是音频是否处于播放状态的属性
|
|
|
+ playing: false,
|
|
|
+ loading: false,
|
|
|
+ playbackRate: 1,
|
|
|
+ volume: 100
|
|
|
+ }
|
|
|
+ },
|
|
|
+ // 加载音频
|
|
|
+ handleLoadAudio(){
|
|
|
+ let _this = this;
|
|
|
+ let audio = document.getElementsByTagName("audio");
|
|
|
+ console.log(audio)
|
|
|
+ audio[0].addEventListener("play", function () {
|
|
|
+ _this.audio.playing = true;
|
|
|
+ _this.audio.loading = false;
|
|
|
+ });
|
|
|
+ audio[0].addEventListener("pause", function () {
|
|
|
+ _this.audio.playing = false;
|
|
|
+ });
|
|
|
+ audio[0].addEventListener("ended", function () {
|
|
|
+ _this.audio.playing = false;
|
|
|
+ });
|
|
|
+ },
|
|
|
+ PlayAudio() {
|
|
|
+ let audio = document.getElementsByTagName("audio");
|
|
|
+ if (this.audio.playing) {
|
|
|
+ audio[0].pause();
|
|
|
+ this.audio.playing = false;
|
|
|
+ } else {
|
|
|
+ audio[0].play();
|
|
|
+ this.audio.playing = true;
|
|
|
+ }
|
|
|
+ },
|
|
|
},
|
|
|
//生命周期 - 创建完成(可以访问当前this实例)
|
|
|
created() {
|