"use strict"; const common_vendor = require("../../../common/vendor.js"); const audioUrl = "https://vkceyugu.cdn.bspapp.com/VKCEYUGU-hello-uniapp/2cc220e0-c27a-11ea-9dfb-6da8e309e0d8.mp3"; const _sfc_main = { data() { return { title: "innerAudioContext", isPlaying: false, isPlayEnd: false, currentTime: 0, duration: 100 }; }, computed: { position() { return this.isPlayEnd ? 0 : this.currentTime; }, playImage() { return this.isPlaying ? "/static/pause.png" : "/static/play.png"; } }, onLoad() { this._isChanging = false; this._audioContext = null; this.createAudio(); }, onUnload() { if (this._audioContext != null && this.isPlaying) { this.stop(); } }, methods: { createAudio() { var innerAudioContext = this._audioContext = common_vendor.index.createInnerAudioContext(); innerAudioContext.autoplay = false; innerAudioContext.src = audioUrl; innerAudioContext.onPlay(() => { console.log("开始播放"); }); innerAudioContext.onTimeUpdate((e) => { if (this._isChanging === true) { return; } this.currentTime = innerAudioContext.currentTime || 0; this.duration = innerAudioContext.duration || 0; }); innerAudioContext.onEnded(() => { this.currentTime = 0; this.isPlaying = false; this.isPlayEnd = true; }); innerAudioContext.onError((res) => { this.isPlaying = false; console.log(res.errMsg); console.log(res.errCode); }); return innerAudioContext; }, onchanging() { this._isChanging = true; }, onchange(e) { console.log(e.detail.value); console.log(typeof e.detail.value); this._audioContext.seek(e.detail.value); this._isChanging = false; }, play() { if (this.isPlaying) { this.pause(); return; } this.isPlaying = true; this._audioContext.play(); this.isPlayEnd = false; }, pause() { this._audioContext.pause(); this.isPlaying = false; }, stop() { this._audioContext.stop(); this.isPlaying = false; } } }; if (!Array) { const _easycom_page_head2 = common_vendor.resolveComponent("page-head"); _easycom_page_head2(); } const _easycom_page_head = () => "../../../components/page-head/page-head.js"; if (!Math) { _easycom_page_head(); } function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) { return { a: common_vendor.p({ title: "audio" }), b: $options.position, c: $data.duration, d: common_vendor.o((...args) => $options.onchanging && $options.onchanging(...args)), e: common_vendor.o((...args) => $options.onchange && $options.onchange(...args)), f: $options.playImage, g: common_vendor.o((...args) => $options.play && $options.play(...args)) }; } const MiniProgramPage = /* @__PURE__ */ common_vendor._export_sfc(_sfc_main, [["render", _sfc_render], ["__file", "E:/xianyu/app/greenPro/pages/API/inner-audio/inner-audio.vue"]]); wx.createPage(MiniProgramPage);