{"version":3,"sources":[null,"webpack:////Users/mac/Desktop/UceEduFront/components/audioPlay/audioPlay.vue?ffc2","webpack:////Users/mac/Desktop/UceEduFront/components/audioPlay/audioPlay.vue?0ed2","webpack:////Users/mac/Desktop/UceEduFront/components/audioPlay/audioPlay.vue?6f6c","uni-app:///components/audioPlay/audioPlay.vue","webpack:////Users/mac/Desktop/UceEduFront/components/audioPlay/audioPlay.vue?fb12","webpack:////Users/mac/Desktop/UceEduFront/components/audioPlay/audioPlay.vue?a9fe"],"names":["name","props","list","Type","default","Faskms","Slowms","autoNext","autoplays","slideYes","switAud","BsNav","id","bs","data","audioName","playCount","shows","show","jian","jia","succes","bsid","bsindex","num","current","recorPath","lock","currentTime","duration","duration1","timer1","videoContext","loading","currentPlayTime","formattedPlayTime","onReady","onShow","mounted","updated","onLoad","console","onHide","onUnload","destroyed","computed","formattedDuration","timer","overTimer","watch","methods","startTimer","stopTimer","clearInterval","updateDisplayTime","formatTime","videoEnded","plays","uni","beishu","setRate","timeupdate","sliderChange","sliderChanging","loadedmetadata","sig","setTimeout","xig","nosig","title","icon","noxig","kt","kj","next","playloading","mm","ss"],"mappings":";;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAkI;AAClI;AAC6D;AACL;AACsC;;;AAG9F;AAC6M;AAC7M,gBAAgB,iNAAU;AAC1B,EAAE,+EAAM;AACR,EAAE,gGAAM;AACR,EAAE,yGAAe;AACjB;AACA;AACA;AACA;AACA;AACA,EAAE,oGAAU;AACZ;AACA;;AAEA;AACe,gF;;;;;;;;;;;;ACvBf;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;;;;;;;;;;;;ACAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;AChBA;AAAA;AAAA;AAAA;AAAwzB,CAAgB,uyBAAG,EAAC,C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ECmK50BA;EACAC;IACAC;MACA;MACAC;MACAC;QAAA;MAAA;IACA;IACAC;MACA;MACAF;MACAC;IACA;IACAE;MACA;MACAH;MACAC;IACA;IACAG;MACAJ;MACAC;IACA;IAEAI;MAEA;;MAEAL;MAEAC;IAEA;IAEAK;MAEA;;MAEAN;MAEAC;IAEA;IAEAM;MAEAP;MAAA;;MAEAC;IAEA;IAEAO;MAEA;;MAEAR;MAEAC;QAAA,QAEA;UACAQ;UACAC;QACA,GACA;UACAD;UACAC;QACA,GACA;UACAD;UACAC;QACA,EACA;MAAA;IACA;EACA;EACAC;IACA;MACAC;MACAC;MACAC;MAAA;MACAC;MAAA;MACAC;MAAA;MACAC;MAAA;MACAC;MAAA;MACAC;MAAA;MACAC;MAAA;MACAC;MACAC;MAAA;MACAC;MAAA;MACAC;MAAA;MACAC;MAAA;MACAC;MAAA;MACAC;MACAC;MACAC;MACAC;MAAA;MACAC;MAAA;MACAC;IACA;EAEA;EAEAC;EACAC;EACAC;IAAA;IACA;MACA;IACA;MACA;IACA;IACA;IACA;MACA;IACA;;IAEA;IACA;MACA;MACA;MACA;QACA;MACA;MACA;QACA;QACA;QACA;UACA;QACA;MACA;IACA;IACA;IACA;MACA;MACA;QAKA;MAEA;IACA;EACA;EACAC;EAEAC;IACAC;EACA;EAEAC;IACA;;IAKA;EAEA;EACAC;IACA;;IASA;EAIA;EAEAC;;IAEA;EAAA,CAEA;EAEAC;IACAC;MACA;MACA;MACA;MACA;IACA;IACAC;MACA;IACA;IACAC;MACA;IACA;EACA;EACAC;EACAC;IACAC;MAAA;MACA;QACA;MACA;IACA;IACAC;MACAX;MACAY;MACA;IACA;IACAC;MACA;MACA;MACA;IACA;IACAC;MACA;MACA;MACA;MACA;IACA;IACAC;MACAf;MACA;MACAA;MACA;IACA;IAEAgB;MACA;MACA;QACAhB;QAEA;MACA;MAEA;MAEA;MAEA;QAEA;QACA;;QAEA;;QAUA;MAIA;QACA;QACAiB;QAUA;MAIA;IAEA;IAEAC;MAEA;;MAEA;IAEA;IAEA;IAEAC;MACA;MACA;MACA;MAKA;IAEA;IACA;IACAC;MACA;MACA;MACA;QACAjC;QACAC;MACA;QACAD;QACAC;MACA;MACA;MACA;IACA;IACA;IACAiC;MACA;MACA;QAKA;QAEA;MACA;MAKA;IAEA;IACA;IACAC;MACA;QACA;QASA;MAIA;MAEA;IAEA;IAEA;IAEAC;MAEA;IAEA;IAEAC;MAAA;MAEA;;MAEA;QAEAxB;QAEA;MAEA;MAEA;MAEA;QAEA;QAEA;MAEA;;MAEA;QAEA;;QAEA;;QAEA;MAEA;QAEA;;QAEA;MAEA;;MAEA;MAEA;QAEA;;QAEA;QAEAyB;UAUA;QAIA;MAEA;QAEA;MAEA;IAEA;IAEAC;MAAA;MACA;MACA;QACA1B;QACA;MACA;MACA;MACA;QACA;QACA;MACA;;MACA;QACA;QACA;QACA;MACA;QACA;QACA;QACA;MACA;;MACA;MACA;QACA;QACA;QACAyB;UAKA;QAEA;MACA;QACA;MACA;IACA;IAEAE;MAEAV;QACAW;QACAC;MACA;IACA;IACAC;MACAb;QACAW;QACAC;MACA;IACA;IAEAE;MACA;MACA;QACA/B;QACA;MACA;MACA;MACA;QACA;QAKA;MAEA;MAKA;IAEA;IAEAgC;MACA;MACA;QACAhC;QACA;MACA;MACA;;MAKA;IAEA;IACAiC;MAAA;MACA;MACA;MACA;MACA;MACA;QACA;MACA;MACA;QACA;QACA;QACA;QACAR;UAKA;QAEA;MACA;QACA;QACA;MACA;IACA;IACAS;MACA;MACA;QACAjB;UACAW;QACA;QACA;MACA;MACAH;QACAR;MACA;IACA;EACA;AAAA,YACA,KAGA;AAAA;AACA;EACA;IACA;EACA;EACA;EACA;EACA;IACAkB;EACA;EACA;IACAC;EACA;EACA;AACA,C;;;;;;;;;;;;;AC9tBA;AAAA;AAAA;AAAA;AAAmiD,CAAgB,87CAAG,EAAC,C;;;;;;;;;;;ACAvjD;AACA,OAAO,KAAU,EAAE,kBAKd","file":"components/audioPlay/audioPlay.js","sourcesContent":["import { render, staticRenderFns, recyclableRender, components } from \"./audioPlay.vue?vue&type=template&id=375e29cc&scoped=true&\"\nvar renderjs\nimport script from \"./audioPlay.vue?vue&type=script&lang=js&\"\nexport * from \"./audioPlay.vue?vue&type=script&lang=js&\"\nimport style0 from \"./audioPlay.vue?vue&type=style&index=0&id=375e29cc&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../Applications/HBuilderX.app/Contents/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"375e29cc\",\n null,\n false,\n components,\n renderjs\n)\n\ncomponent.options.__file = \"components/audioPlay/audioPlay.vue\"\nexport default component.exports","export * from \"-!../../../../../../Applications/HBuilderX.app/Contents/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../../../../../Applications/HBuilderX.app/Contents/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader/index.js??ref--17-0!../../../../../../Applications/HBuilderX.app/Contents/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/webpack-uni-mp-loader/lib/template.js!../../../../../../Applications/HBuilderX.app/Contents/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/page-meta.js!../../../../../../Applications/HBuilderX.app/Contents/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/index.js??vue-loader-options!../../../../../../Applications/HBuilderX.app/Contents/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/webpack-uni-mp-loader/lib/style.js!./audioPlay.vue?vue&type=template&id=375e29cc&scoped=true&\"","var components\nvar render = function () {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n if (!_vm._isMounted) {\n _vm.e0 = function ($event) {\n _vm.lock = true\n }\n _vm.e1 = function ($event) {\n _vm.lock = false\n }\n }\n}\nvar recyclableRender = false\nvar staticRenderFns = []\nrender._withStripped = true\n\nexport { render, staticRenderFns, recyclableRender, components }","import mod from \"-!../../../../../../Applications/HBuilderX.app/Contents/HBuilderX/plugins/uniapp-cli/node_modules/babel-loader/lib/index.js!../../../../../../Applications/HBuilderX.app/Contents/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader/index.js??ref--13-1!../../../../../../Applications/HBuilderX.app/Contents/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/webpack-uni-mp-loader/lib/script.js!../../../../../../Applications/HBuilderX.app/Contents/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/index.js??vue-loader-options!../../../../../../Applications/HBuilderX.app/Contents/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/webpack-uni-mp-loader/lib/style.js!./audioPlay.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../../../Applications/HBuilderX.app/Contents/HBuilderX/plugins/uniapp-cli/node_modules/babel-loader/lib/index.js!../../../../../../Applications/HBuilderX.app/Contents/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader/index.js??ref--13-1!../../../../../../Applications/HBuilderX.app/Contents/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/webpack-uni-mp-loader/lib/script.js!../../../../../../Applications/HBuilderX.app/Contents/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/index.js??vue-loader-options!../../../../../../Applications/HBuilderX.app/Contents/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/webpack-uni-mp-loader/lib/style.js!./audioPlay.vue?vue&type=script&lang=js&\"","<template>\n <!--音频组件-->\n <view>\n\t<view>音频已经播放了:{{ playCount }}遍</view>\n\t<view class=\"\">\n\t\t音频名称:{{ audioName }}\n\t</view>\n\t<view>\n\t\t<text>Success 时长: {{ formattedDuration }}</text> \n\t</view>\n <view class=\"bgfff\">\n <view>\n <view class=\"audo-video\">\n <!--音频播放按钮处-->\n <view class=\"audo-top\">\n <!--上一首切换按钮-->\n <!-- <image\n v-if=\"jian\"\n style=\"width: 50rpx; height: 50rpx\"\n @click=\"nosig\"\n src=\"/static/sys.png\"\n mode=\"aspectFill\"\n ></image>\n <image\n v-else\n @click=\"sig\"\n src=\"/static/xys.png\"\n style=\"width: 50rpx; height: 50rpx; transform: rotate(180deg)\"\n mode=\"aspectFill\"\n ></image> -->\n <!--上一首切换按钮-->\n <!--快退按钮-->\n\t\t\t<!-- <i :class=\"succes ? 'el-icon-video-pause':'el-icon-video-play'\"\n\t\t\tmode=\"aspectFill\"\n\t\t\tstyle=\"width: 180rpx; height: 180rpx\"\n\t\t\t@click=\"plays()\"></i> -->\n <!-- <image\n src=\"/static/kt.png\"\n style=\"width: 45rpx; height: 45rpx\"\n mode=\"aspectFill\"\n @click=\"kt()\"\n ></image> -->\n <!--快退按钮-->\n <!--播放按钮-->\n <image\n :src=\"succes ? '/static/icon/bofang_1.png' : '/static/icon/bofang.png'\"\n mode=\"aspectFill\"\n style=\"width: 180rpx; height: 180rpx\"\n @click=\"plays()\"\n ></image>\n <!--播放按钮-->\n <!--快进按钮-->\n <!-- <image\n src=\"/static/kj.png\"\n style=\"width: 45rpx; height: 45rpx\"\n mode=\"aspectFill\"\n @click=\"kj()\"\n ></image> -->\n <!--快进按钮-->\n <!--下一首切换按钮-->\n <!-- <image\n v-if=\"jia\"\n @click=\"noxig\"\n style=\"width: 50rpx; height: 50rpx; transform: rotate(180deg)\"\n src=\"/static/sys.png\"\n mode=\"aspectFill\"\n >\n </image>\n <image\n v-else\n style=\"width: 50rpx; height: 50rpx\"\n src=\"/static/xys.png\"\n @click=\"xig\"\n mode=\"aspectFill\"\n ></image> -->\n\n <!--下一首切换按钮-->\n\n </view>\n\n <!--音频播放按钮处-->\n\n <!--音频api处[视频代替音频-实现倍数功能]-->\n\n <video\n id=\"myVideo\"\n ref=\"myVideo\"\n :src=\"recorPath\"\n class=\"hidden\"\n @timeupdate=\"timeupdate\"\n :autoplay=\"autoplays\"\n @loadedmetadata=\"loadedmetadata\"\n @ended=\"next\"\n controls\n style=\"width: 10rpx; height: 10rpx\"\n ></video>\n\n <!--音频api处[视频代替音频-实现倍数功能]-->\n\n <view class=\"audo-a\" style=\"margin: 0 auto\">\n <!--进度条-->\n <view class=\"slider-box\">\n <text class=\"mm\">{{ timer }}</text>\n <slider\n style=\"width: 370rpx\"\n @change=\"sliderChange\"\n @changing=\"sliderChanging\"\n class=\"audio-slider\"\n block-size=\"16\"\n :min=\"0\"\n :max=\"duration\"\n :value=\"currentTime\"\n activeColor=\"#FFA929\"\n @touchstart=\"lock = true\"\n @touchend=\"lock = false\"\n />\n <text class=\"ss\" v-if=\"overTimer != 'NaN:NaN'\">{{\n overTimer\n }}</text>\n <text class=\"ss\" v-else>00.00</text>\n </view>\n <!--进度条-->\n <!--倍数-->\n\n <view\n class=\"beishu\"\n style=\"border: 3rpx solid #c8c9cc\"\n @click=\"beishu\"\n >{{ BsNav[bsindex].bs }} X\n </view>\n <view class=\"absolute\" style=\"right: 0; top: 80rpx\" v-if=\"shows\">\n <!-- <u-transition :show=\"show\" mode=\"slide-right\" duration=\"300\"> -->\n <view\n class=\"beishu-a\"\n style=\"border: 2rpx solid #c8c9cc\"\n v-if=\"show\"\n >\n <view\n v-for=\"(item, index) in BsNav\"\n :key=\"index\"\n @click=\"setRate(index, item)\"\n class=\"title\"\n :style=\"{ color: bsid == item.id ? '#8D48FE' : '' }\"\n >\n {{ item.bs }} X\n </view>\n </view>\n <!-- </u-transition> -->\n </view>\n <!--倍数-->\n </view>\n </view>\n\n </view>\n\n </view>\n <view class=\"h-100\"></view>\n <!--占位-->\n </view>\n <!--音频组件 Author:chenxin-->\n</template>\n<script>\nexport default {\n name: \"cx-audio-play\",\n props: {\n list: {\n //音频数据\n Type: Array,\n default: () => [],\n },\n Faskms: {\n //快进秒数\n Type: Number,\n default: 15,\n },\n Slowms: {\n //快退秒数\n Type: Number,\n default: 15,\n },\n autoNext: {\n Type: Boolean,\n default: false,\n },\n\n autoplays: {\n\n //是否开启自动播放\n\n Type: Boolean,\n\n default: true,\n\n },\n\n slideYes: {\n\n //滑动进度条 - 是否开启播放\n\n Type: Boolean,\n\n default: false,\n\n },\n\n switAud: {\n\n Type: Boolean, //切换上下音频 - 是否开启播放\n\n default: false,\n\n },\n\n BsNav: {\n\n //倍数-传入\n\n Type: Array,\n\n default: () => [\n\n {\n id: 1.0,\n bs: \"1.0\",\n },\n {\n id: 1.5,\n bs: \"1.5\",\n },\n {\n id: 2.0,\n bs: \"2.0\",\n },\n ],\n },\n },\n data() {\n return {\n\t audioName:'',\n\t playCount:0,\n shows: false, //倍数弹框\n show: true, //倍数弹框动画默认开启\n jian: true, //减-切换图标\n jia: true, //加-切换图标\n succes: true, //播放按钮\n bsid: \"\", //倍数默认显示第一个\n bsindex: 0, //倍数默认显示第一个\n num: 0,\n current: 0, //当前选中的索引\n recorPath: \"\", //音频播放地址\n lock: false, // 锁\n currentTime: 0, //当前进度\n duration: 100, // 总进度\n duration1:0,\n timer1:null,\n videoContext: null,\n loading: true, //锁 加载\n currentPlayTime: 0, // 当前播放时间(秒) \n formattedPlayTime: '00:00', // 格式化后的播放时间字符串 \n };\n\n },\n\n onReady() {},\n onShow() {},\n mounted() {\n\tif (this.succes) { \n\t\tthis.startTimer(); \n\t}else{\n\t\tthis.stopTimer()\n\t}\n\t// 监听页面的卸载,确保清除计时器 \n\tthis.$once('hook:beforeDestroy', () => { \n\t\tthis.stopTimer(); \n\t});\n\n //默认播放第一个 -- 按钮展示\n if (this.list.length != 0) {\n this.recorPath = this.list[0].recorPath;\n\t this.audioName = this.list[0].name\n this.$nextTick(() => {\n this.videoContext.play();\n });\n if (this.list.length > 1) {\n //音频文件大于1 -- 下一个切换默认显示\n this.jia = false;\n if (this.autoplays) {\n this.succes = true;\n }\n }\n }\n //倍数默认处理\n if (this.BsNav.length != 0) {\n this.bsid = this.BsNav[0].id;\n this.$nextTick(() => {\n //#ifdef H5\n this.$refs.myVideo.playbackRate(this.bsid);\n //#endif\n //#ifndef H5\n this.videoContext.playbackRate(this.bsid);\n //#endif\n });\n }\n },\n updated() {},\n\n onLoad() {\n\tconsole.log(this.$refs)\n },\n\n onHide() {\n //监听页面离开 - 销毁音频\n //#ifdef H5\n this.$refs.myVideo.stop();\n //#endif\n //#ifndef H5\n this.videoContext.stop();\n //#endif\n },\n onUnload() {\n //监听页面卸载 - 销毁音频\n //#ifdef H5\n\n this.$refs.myVideo.stop();\n\n //#endif\n\n //#ifndef H5\n\n this.videoContext.stop();\n\n //#endif\n\n },\n\n destroyed() {\n\n // this.innerAudioContext.stop();\n\n },\n\n computed: {\n\tformattedDuration() { \n\t\t// 将毫秒转换为分:秒格式 \n\t\tconst minutes = Math.floor(this.duration1 / 60000); \n\t\tconst seconds = Math.floor((this.duration1 % 60000) / 1000); \n\t\treturn `${minutes.toString().padStart(2, '0')}:${seconds.toString().padStart(2, '0')}`; \n\t}, \n timer() {\n return calcTimer(this.currentTime);\n },\n overTimer() {\n return calcTimer(this.duration);\n },\n },\n watch: {},\n methods: {\n\tstartTimer() { \n\t\tthis.timer1 = setInterval(() => { \n\t\t\tthis.duration1 += 1000; \n\t\t}, 1000); \n\t}, \n\tstopTimer() { \n\t\tconsole.log('zhanting')\n\t\tclearInterval(this.timer1); \n\t\tthis.timer1 = null; \n\t}, \n\tupdateDisplayTime() { \n\t\t// 更新当前播放时间并格式化显示 \n\t\tthis.currentPlayTime = Math.round(this.$refs.myAudio.currentTime); \n\t\tthis.formattedPlayTime = this.formatTime(this.currentPlayTime); \n\t}, \n\tformatTime(seconds) { \n\t\t// 将秒数格式化为分:秒的字符串 \n\t\tconst minutes = Math.floor(seconds / 60); \n\t\tconst secs = seconds % 60; \n\t\treturn `${minutes.toString().padStart(2, '0')}:${secs.toString().padStart(2, '0')}`; \n\t}, \n\tvideoEnded() { \n\t\tconsole.log('视频播放结束'); \n\t\tthis.playCount++; // 每次播放结束,递增播放次数 \n\t\tconsole.log('已播放次数:', this.playCount); // 输出当前播放次数 \n\t\t// 在这里可以执行其他逻辑,比如更新页面上的显示等 \n\t},\n\n plays() {\n //播放暂停\n if (!this.list || this.list.length == 0) {\n console.log(\"暂无音频数据~\");\n\n return;\n }\n\n this.playloading();\n\n this.succes = !this.succes;\n\n if (this.succes) {\n\t\t\n\t\tthis.startTimer();\n // this.currentTime = 0\n\n // console.log('-----------------')\n\n //#ifdef H5\n\n this.$refs.myVideo.play();\n\n //#endif\n\n //#ifndef H5\n\n this.videoContext.play();\n\n //#endif\n\n } else {\n\t\tthis.stopTimer(); \n uni.hideLoading();\n\n //#ifdef H5\n\n this.$refs.myVideo.pause();\n\n //#endif\n\n //#ifndef H5\n\n this.videoContext.pause();\n\n //#endif\n\n }\n\n },\n\n beishu() {\n\n //倍速弹框\n\n this.shows = !this.shows;\n\n },\n\n // 倍速\n\n setRate(index, item) {\n this.bsid = item.id;\n this.bsindex = index;\n this.shows = false;\n //#ifdef H5\n this.$refs.myVideo.playbackRate(item.id);\n //#endif\n //#ifndef H5\n this.videoContext.playbackRate(item.id);\n //#endif\n },\n // 更新进度条\n timeupdate(event) {\n if (this.lock) return; // 锁\n var currentTime, duration;\n if (event.detail.detail) {\n currentTime = event.detail.detail.currentTime;\n duration = event.detail.detail.duration;\n } else {\n currentTime = event.detail.currentTime;\n duration = event.detail.duration;\n }\n this.currentTime = currentTime;\n this.duration = duration;\n },\n // 拖动进度条\n sliderChange(data) {\n //此处滑动进度条--开始播放\n if (this.slideYes && !this.succes) {\n\t\t//#ifdef H5\n this.$refs.myVideo.play();\n //#endif\n //#ifndef H5\n this.videoContext.play();\n //#endif\n this.succes = true;\n }\n //#ifdef H5\n this.$refs.myVideo.seek(data.detail.value); //获取秒数\n //#endif\n //#ifndef H5\n this.videoContext.seek(data.detail.value); //获取秒数\n //#endif\n },\n //拖动中\n sliderChanging(data) {\n if (data.detail.value == 0) {\n this.succes = false;\n //#ifdef H5\n\n this.$refs.myVideo.pause();\n\n //#endif\n\n //#ifndef H5\n\n this.videoContext.pause();\n\n //#endif\n\n }\n\n this.currentTime = data.detail.value;\n\n },\n\n // 视频加载完成\n\n loadedmetadata(data) {\n\n this.duration = data.detail.duration;\n\n },\n\n sig() {\n\n //上一首\n\n if (!this.list || this.list.length == 0) {\n\n console.log(\"暂无音频数据~\");\n\n return;\n\n }\n\n this.num -= 1;\n\n if (this.num < this.list.length) {\n\n this.loading = true;\n\n this.playloading(); //加载框\n\n }\n\n if (this.num + 1 < this.list.length && this.num + 1 != 1) {\n\n //点击上一首小于音频数据总长度\n\n this.jia = false; // 下按钮-亮且可点击\n\n this.jian = false; // 上按钮-亮且可点击\n\n } else {\n\n this.jian = true; // 上按钮-灰且阻止\n\n this.jia = false; // 下按钮-亮且可点击\n\n }\n\n this.recorPath = this.list[this.num].recorPath;\n\n if (this.switAud) {\n\n //切换时是否默认开启播放\n\n this.succes = true;\n\n setTimeout(() => {\n\n //#ifdef H5\n\n this.$refs.myVideo.play();\n\n //#endif\n\n //#ifndef H5\n\n this.videoContext.play();\n\n //#endif\n\n }, 100);\n\n } else {\n\n this.succes = false;\n\n }\n\n },\n\n xig() {\n //下一首\n if (!this.list || this.list.length == 0) {\n console.log(\"暂无音频数据~\");\n return;\n }\n this.num += 1;\n if (this.num < this.list.length) {\n this.loading = true;\n this.playloading(); //加载框\n }\n if (this.num + 1 < this.list.length) {\n //点击下一首小于音频数据总长度\n this.jia = false; // 下按钮-亮且可点击\n this.jian = false; // 上按钮-亮且可点击\n } else {\n //大于总长度\n this.jia = true; //下按钮 - 灰且阻止\n this.jian = false; //上按钮 - 亮可点击\n }\n this.recorPath = this.list[this.num].recorPath;\n if (this.switAud) {\n //切换时是否默认开启播放\n this.succes = true;\n setTimeout(() => {\n //#ifdef H5\n this.$refs.myVideo.play();\n //#endif\n //#ifndef H5\n this.videoContext.play();\n //#endif\n }, 100);\n } else {\n this.succes = false;\n }\n },\n\n nosig() {\n\n uni.showToast({\n title: \"到头了~\",\n icon: \"none\",\n });\n },\n noxig() {\n uni.showToast({\n title: \"没有更多了~\",\n icon: \"none\",\n });\n },\n\n kt() {\n //快退\n if (!this.list || this.list.length == 0) {\n console.log(\"暂无音频数据~\");\n return;\n }\n let a = (this.currentTime - Math.floor(15 % 60)).toFixed(0); //当前时间-15秒\n if (a < 1) {\n this.succes = false;\n //#ifdef H5\n this.$refs.myVideo.pause();\n //#endif\n //#ifndef H5\n this.videoContext.pause();\n //#endif\n }\n //#ifdef H5\n this.$refs.myVideo.seek(a);\n //#endif\n //#ifndef H5\n this.videoContext.seek(a);\n //#endif\n },\n\n kj() {\n //快进\n if (!this.list || this.list.length == 0) {\n console.log(\"暂无音频数据~\");\n return;\n }\n let a = (this.currentTime + Math.floor(15 % 60)).toFixed(0); //当前时间+15秒\n //#ifdef H5\n this.$refs.myVideo.seek(a);\n //#endif\n //#ifndef H5\n this.videoContext.seek(a);\n //#endif\n },\n next(data) {\n //监听音频结束\n\t this.playCount++\n this.succes = false;\n /*音频结束--是否自动播放下一首*/\n if (!this.autoNext) {\n return;\n }\n if (this.num + 1 < 1000) {\n this.succes = true;\n this.num += 1;\n // this.recorPath = this.list[this.num].recorPath;\n setTimeout(() => {\n //#ifdef H5\n this.$refs.myVideo.play();\n //#endif\n //#ifndef H5\n this.videoContext.play();\n //#endif\n }, 100);\n } else {\n this.jia = true; //下按钮 - 灰且阻止\n this.jian = false; //上按钮 - 亮可点击\n }\n },\n playloading() {\n //加载框--封\n if (this.loading) {\n uni.showLoading({\n title: \"音频缓存中...\",\n });\n this.loading = false;\n }\n setTimeout(() => {\n uni.hideLoading();\n }, 1600);\n },\n },\n watch: {},\n};\n\n//时间换算\nfunction calcTimer(timer) {\n if (timer === 0 || typeof timer !== \"number\") {\n return \"00:00\";\n }\n let mm = Math.floor(timer / 60);\n let ss = Math.floor(timer % 60);\n if (mm < 10) {\n mm = \"0\" + mm;\n }\n if (ss < 10) {\n ss = \"0\" + ss;\n }\n return mm + \":\" + ss;\n}\n</script>\n<style lang=\"scss\" scoped>\npage {\n background-color: #f6f6f8;\n}\n.audo-video {\n padding-bottom: 20rpx;\n color: #999;\n}\n.slider-box {\n display: flex;\n align-items: center;\n justify-content: center;\n font-size: 27rpx;\n color: #999;\n}\nbutton {\n display: inline-block;\n\n width: 100rpx;\n\n background-color: #fff;\n\n font-size: 24rpx;\n\n color: #000;\n\n padding: 0;\n\n}\n\n.hidden {\n\n position: fixed;\n\n top: 0;\n\n left: -10rpx;\n\n z-index: -1;\n\n width: 1rpx;\n\n height: 1rpx;\n\n}\n\n.audo-top {\n\n padding: 20rpx 40rpx;\n\n display: flex;\n\n justify-content: space-around;\n\n align-items: center;\n\n image {\n\n width: 45rpx;\n\n height: 45rpx;\n\n }\n\n}\n\n.audo-a {\n\n display: flex;\n\n justify-content: space-between;\n\n align-items: center;\n\n width: 700rpx;\n\n position: relative;\n\n z-index: 9;\n\n}\n\n.beishu {\n\n position: relative;\n\n width: 100rpx;\n\n padding-top: 5rpx;\n\n padding-bottom: 5rpx;\n\n text-align: center;\n\n border-radius: 25rpx;\n\n font-size: 28rpx;\n\n}\n\n.absolute {\n\n position: absolute;\n\n .beishu-a {\n\n width: 200rpx;\n\n border-radius: 20rpx;\n\n text-align: center;\n\n line-height: 90rpx;\n\n background: #fff;\n\n .title {\n\n pdding-left: 30rpx;\n\n }\n\n }\n\n}\n\n</style>","import mod from \"-!../../../../../../Applications/HBuilderX.app/Contents/HBuilderX/plugins/uniapp-cli/node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../../../../Applications/HBuilderX.app/Contents/HBuilderX/plugins/uniapp-cli/node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../../../../Applications/HBuilderX.app/Contents/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../Applications/HBuilderX.app/Contents/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader/index.js??ref--8-oneOf-1-2!../../../../../../Applications/HBuilderX.app/Contents/HBuilderX/plugins/uniapp-cli/node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-3!../../../../../../Applications/HBuilderX.app/Contents/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/sass-loader/dist/cjs.js??ref--8-oneOf-1-4!../../../../../../Applications/HBuilderX.app/Contents/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader/index.js??ref--8-oneOf-1-5!../../../../../../Applications/HBuilderX.app/Contents/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/index.js??vue-loader-options!../../../../../../Applications/HBuilderX.app/Contents/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/webpack-uni-mp-loader/lib/style.js!./audioPlay.vue?vue&type=style&index=0&id=375e29cc&lang=scss&scoped=true&\"; export default mod; export * from \"-!../../../../../../Applications/HBuilderX.app/Contents/HBuilderX/plugins/uniapp-cli/node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../../../../Applications/HBuilderX.app/Contents/HBuilderX/plugins/uniapp-cli/node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../../../../Applications/HBuilderX.app/Contents/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../Applications/HBuilderX.app/Contents/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader/index.js??ref--8-oneOf-1-2!../../../../../../Applications/HBuilderX.app/Contents/HBuilderX/plugins/uniapp-cli/node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-3!../../../../../../Applications/HBuilderX.app/Contents/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/sass-loader/dist/cjs.js??ref--8-oneOf-1-4!../../../../../../Applications/HBuilderX.app/Contents/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader/index.js??ref--8-oneOf-1-5!../../../../../../Applications/HBuilderX.app/Contents/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/index.js??vue-loader-options!../../../../../../Applications/HBuilderX.app/Contents/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/webpack-uni-mp-loader/lib/style.js!./audioPlay.vue?vue&type=style&index=0&id=375e29cc&lang=scss&scoped=true&\"","// extracted by mini-css-extract-plugin\n if(module.hot) {\n // 1712135589259\n var cssReload = require(\"/Applications/HBuilderX.app/Contents/HBuilderX/plugins/uniapp-cli/node_modules/mini-css-extract-plugin/dist/hmr/hotModuleReplacement.js\")(module.id, {\"hmr\":true,\"publicPath\":\"../../\",\"locals\":false});\n module.hot.dispose(cssReload);\n module.hot.accept(undefined, cssReload);\n }\n "],"sourceRoot":""}
|