yiming
2024-03-29 4c472f6bbf82e5ef95b60ac8e417760d89a7ba36
packageDomain/pages/resourceDetails/myAudio/index.js
@@ -1,6 +1,8 @@
// pages/resourceDetails/index.js
const app = getApp()
const myAudio = wx.createInnerAudioContext();
// innerAudioContext.onPlay(function callback),
// InnerAudioContext.onTimeUpdate(function callback)
Page({
  /**
@@ -35,18 +37,29 @@
    style: 'height: 248rpx',
    submitType: "new", //  新建 or 编辑
    noteId: '',
    myAudioDuration: '00:00',  // 视频时间
    myAudioCurrent: '00:00',   // 当前播放进度
    myAudioDuration: '00:00', // 视频时间
    myAudioCurrent: '00:00', // 当前播放进度
    isplay: false, //是否默认播放,
    selectId: '',
    speed: 1.0,
    myAudioPos: ''
  },
  // 时间格式化
  format(t) {
    let time = Math.floor(t / 60) >= 10 ? Math.floor(t / 60) : '0' + Math.floor(t / 60);
    t = time + ':' + ((t % 60) / 100).toFixed(2).slice(-2);
    return t;
  // // 时间格式化
  // format(t) {
  //   let time = Math.floor(t / 60) >= 10 ? Math.floor(t / 60) : '0' + Math.floor(t / 60);
  //   t = time + ':' + ((t % 60) / 100).toFixed(2).slice(-2);
  //   return t;
  // },
  // 转化时间
  format(time) {
    let minute = Math.floor(time / 60);
    let second = Math.floor(time % 60);
    minute = minute < 10 ? ("0" + minute) : minute;
    second = second < 10 ? ("0" + second) : second;
    let res = minute + ":" + second;
    return res;
  },
  audio: null,
  // 格式化笔记时间
@@ -68,7 +81,6 @@
   * 生命周期函数--监听页面加载
   */
  onLoad(options) {
    const systInfo = wx.getSystemInfoSync();
    const menu = wx.getMenuButtonBoundingClientRect(); // 胶囊信息
    const navBarHeight = (menu.top - systInfo.statusBarHeight) * 2 + menu.height; // 导航栏高度
@@ -89,11 +101,18 @@
    this.getNoteList()
    this.setData({
      myAudioPos: '',
      isplay: false, //是否默认播放,
      myAudioCurrent: '00:00', // 当前播放进度
      showData: '',
    });
    myAudio.src = ''
  },
  /**
   * 生命周期函数--监听页面初次渲染完成
   *
   */
  onReady() {
@@ -105,7 +124,7 @@
   */
  onShow() {
    this.pubulicPlayFun()
  },
  /**
@@ -148,7 +167,8 @@
  onTabsClick(event) {
  }, handleChange(e) {
  },
  handleChange(e) {
    this.setData({
      activeValues: e.detail.value,
    });
@@ -161,7 +181,7 @@
    this.setData({
      submitTitle: this.data.bookName,
      dialogKey: true,
      // textvalue: ''
      textvalue: ''
    });
@@ -177,8 +197,6 @@
    wx.navigateBack();
  },
  resourceDetailsData() {
    let query = {
      path: '*',
      queryType: '*',
@@ -213,19 +231,22 @@
            threeLeveData: this.data.threeLeveData
          })
          this.data.threeLeveData.forEach((items, index) => { // 修改此处添加index参数
            if (this.data.productLinkPath == items.productLinkPath) {
              this.setData({
                showData: app.config.requestCtx + '/file/api/ApiDownload?md5=' + items.file,
                titleName: items.name
              })
              this.pubulicPlayFun()
              console.log(index, 'index');
              let selectedIndex = index; // 存储选中项的索引
              this.setData({
                selectedId: selectedIndex // 设置选中项的索引
              });
            }
          });
          if (this.data.productLinkPath == item.productLinkPath) {
            console.log(item.id, 'index');
            this.setData({
              showData: app.config.requestCtx + '/file/api/ApiDownload?md5=' + item.file,
              titleName: item.name
            })
            this.pubulicPlayFun()
            // this.setData({
            //   selectedId: index
            // })
          }
        }
      })
@@ -235,29 +256,34 @@
    })
  },
  onVideo(e) {
    // console.log(e, 'e');
    this.setData({
      myAudioCurrent: '00:00',
      myAudioPos: '',
      isplay: false
    })
    const item = e.currentTarget.dataset.item
    console.log(item, 'item0980');
    if (this.data.showData != '') {
      this.setData({
        titleName: item.name,
        selectId: item.id,
        selectedId: e.currentTarget.dataset.index,
        showData: ''
      })
      console.log(e.currentTarget.dataset.index, 'e.currentTarget.dataset.index');
      if (item.selectType == "audio") {
        this.setData({
          showData: app.config.requestCtx + '/file/api/ApiDownload?md5=' + item.file
        })
        this.pubulicPlayFun()
      }
    }
    this.setData({
      selectedId: e.currentTarget.dataset.index,
    })
    this.setData({
      titleName: item.name,
      selectId: item.id
    })
    if (item.selectType == "audio") {
      this.setData({
        showData: app.config.requestCtx + '/file/api/ApiDownload?md5=' + item.file
      })
      this.pubulicPlayFun()
    }
  },
  getProductUserSubmitTopicGet() {
@@ -405,13 +431,15 @@
    messageIds.push(id)
    wx.showModal({
      title: '提示',
      content: '确认删除该笔记吗?',//editable如果为true,这就是输入框的内容
      editable: false,//是否显示输入框
      placeholderText: '请输入内容吧',//输入框的默认内容
      content: '确认删除该笔记吗?', //editable如果为true,这就是输入框的内容
      editable: false, //是否显示输入框
      placeholderText: '请输入内容吧', //输入框的默认内容
      success: (res) => {
        if (res.confirm) {
          app.MG.ugc
            .delTopicMessage({ messageIds })
            .delTopicMessage({
              messageIds
            })
            .then((res) => {
              wx.showToast({
                title: '删除成功',
@@ -515,8 +543,6 @@
  },
  // 播放公共代码
  pubulicPlayFun() {
    myAudio.src = this.data.showData
    console.log(myAudio.src);
    // 在onCanplay里获取并设置音频时长和播放进度
@@ -524,15 +550,19 @@
      myAudio.duration; //必须写,不然获取不到。。。
      setTimeout(() => {
        console.log(myAudio.duration, 'myAudio.duration');
        // debugger
        this.setData({
          myAudioDuration: this.format(myAudio.duration),
          myAudioCurrent: this.format(myAudio.currentTime)
        });
      }, 1000);
      }, 100);
    });
    // myAudio.onSeeked(() => {
    //   this.setData({
    //     myAudioDuration: this.format(myAudio.duration),
    //     myAudioCurrent: this.format(myAudio.currentTime)
    //   })
    // })
    // 播放完成处理,按钮变一下
    myAudio.onEnded((res) => {
      this.setData({
@@ -548,6 +578,7 @@
        myAudioCurrent: this.format(myAudio.currentTime)
      });
    })
  },
@@ -565,7 +596,7 @@
  // 停止
  stop() {
    console.log(11111);
    myAudio.pause();
    this.setData({
      isplay: false
@@ -654,7 +685,7 @@
    setTimeout(() => {
      console.log(this.data.speed, 'this.data.speed');
      myAudio.startTime = this.data.myAudioDuration  //开始时间
      myAudio.startTime = this.data.myAudioDuration //开始时间
      myAudio.playbackRate = this.data.speed; //  播放速率
    }, 200);
  },
@@ -683,7 +714,7 @@
      showDropdown: !this.data.showDropdown
    })
    setTimeout(() => {
      myAudio.startTime = this.data.myAudioDuration  //开始时间
      // myAudio.startTime = this.data.myAudioDuration  //开始时间
      myAudio.playbackRate = this.data.speed; //  播放速率
    }, 200);
  },
@@ -693,7 +724,7 @@
      showDropdown: !this.data.showDropdown
    })
    setTimeout(() => {
      myAudio.startTime = this.data.myAudioDuration  //开始时间
      // myAudio.startTime = this.data.myAudioDuration  //开始时间
      myAudio.playbackRate = this.data.speed; //  播放速率
    }, 200);
  },
@@ -703,7 +734,7 @@
      showDropdown: !this.data.showDropdown
    })
    setTimeout(() => {
      myAudio.startTime = this.data.myAudioDuration  //开始时间
      // myAudio.startTime = this.data.myAudioDuration  //开始时间
      myAudio.playbackRate = this.data.speed; //  播放速率
    }, 200);
  },
@@ -713,7 +744,7 @@
      showDropdown: !this.data.showDropdown
    })
    setTimeout(() => {
      myAudio.startTime = this.data.myAudioDuration  //开始时间
      // myAudio.startTime = this.data.myAudioDuration  //开始时间
      myAudio.playbackRate = this.data.speed; //  播放速率
    }, 200);
  }