yiming
2024-03-26 c5864be56488bee0c767d4b1cf157db4a0ec33c3
packageDomain/pages/resourceDetails/myAudio/index.js
@@ -7,6 +7,7 @@
   * 页面的初始数据
   */
  data: {
    showDropdown: false,
    noteList: [],
    navBarHeight: '',
    barHeight: '',
@@ -39,7 +40,13 @@
    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;
  },
  audio: null,
  // 格式化笔记时间
@@ -55,18 +62,12 @@
    return formattedDate
  },
  // 时间格式化
  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;
  },
  /**
   * 生命周期函数--监听页面加载
   */
  onLoad(options) {
    const systInfo = wx.getSystemInfoSync();
    const menu = wx.getMenuButtonBoundingClientRect(); // 胶囊信息
    const navBarHeight = (menu.top - systInfo.statusBarHeight) * 2 + menu.height; // 导航栏高度
@@ -92,6 +93,7 @@
  /**
   * 生命周期函数--监听页面初次渲染完成
   *
   */
  onReady() {
@@ -103,6 +105,7 @@
   */
  onShow() {
    this.pubulicPlayFun()
  },
  /**
@@ -158,7 +161,7 @@
    this.setData({
      submitTitle: this.data.bookName,
      dialogKey: true,
      // textvalue: ''
      textvalue: ''
    });
@@ -174,8 +177,6 @@
    wx.navigateBack();
  },
  resourceDetailsData() {
    let query = {
      path: '*',
      queryType: '*',
@@ -210,19 +211,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
            // })
          }
        }
      })
@@ -232,30 +236,31 @@
    })
  },
  onVideo(e) {
    // console.log(e, 'e');
    this.setData({
      myAudioCurrent: '00:00',
      myAudioPos: ''
    })
    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() {
@@ -372,9 +377,9 @@
    await app.MG.ugc.getTopicMessageList(query).then((res) => {
      // notePage.value.total = res.totalSize
      res.datas.forEach((item) => {
        // item.compliceHover = false
        // item.deleteHover = false
        item.createDate = this.convertTimestamp(item.createDate)
        console.log(item, 'item789');
      })
      this.setData({
        "pageCount.total": res.totalSize,
@@ -514,14 +519,14 @@
  // 播放公共代码
  pubulicPlayFun() {
    myAudio.src = this.data.showData
    console.log(myAudio.src);
    // 在onCanplay里获取并设置音频时长和播放进度
    myAudio.onCanplay(() => {
      myAudio.duration; //必须写,不然获取不到。。。
      setTimeout(() => {
        console.log(myAudio.duration);
        console.log(myAudio.duration, 'myAudio.duration');
        // debugger
        this.setData({
          myAudioDuration: this.format(myAudio.duration),
          myAudioCurrent: this.format(myAudio.currentTime)
@@ -562,14 +567,13 @@
  // 停止
  stop() {
    console.log(11111);
    myAudio.pause();
    this.setData({
      isplay: false
    });
  },
  adsfhaewlf() {
    myAudio.pause();
    this.setData({
      isplay: false
@@ -614,7 +618,7 @@
    }
  },
  // 左右切换
  changeItem(item) {
    console.log(item);
@@ -651,6 +655,7 @@
    }
    setTimeout(() => {
      console.log(this.data.speed, 'this.data.speed');
      myAudio.startTime = this.data.myAudioDuration  //开始时间  
      myAudio.playbackRate = this.data.speed; //  播放速率
    }, 200);
@@ -665,7 +670,53 @@
      myAudioPos: position,
      myAudioCurrent: this.format(currentTime)
    })
  },
  toggleDropdown() {
    this.setData({
      showDropdown: !this.data.showDropdown
    });
  },
  smallSpeed() {
    this.setData({
      speed: 0.5,
      showDropdown: !this.data.showDropdown
    })
    setTimeout(() => {
      // myAudio.startTime = this.data.myAudioDuration  //开始时间
      myAudio.playbackRate = this.data.speed; //  播放速率
    }, 200);
  },
  centreSpeed() {
    this.setData({
      speed: 1.5,
      showDropdown: !this.data.showDropdown
    })
    setTimeout(() => {
      // myAudio.startTime = this.data.myAudioDuration  //开始时间
      myAudio.playbackRate = this.data.speed; //  播放速率
    }, 200);
  },
  bigSpeed() {
    this.setData({
      speed: 2,
      showDropdown: !this.data.showDropdown
    })
    setTimeout(() => {
      // myAudio.startTime = this.data.myAudioDuration  //开始时间
      myAudio.playbackRate = this.data.speed; //  播放速率
    }, 200);
  },
  smallSpeeDmultiple() {
    this.setData({
      speed: 1,
      showDropdown: !this.data.showDropdown
    })
    setTimeout(() => {
      // myAudio.startTime = this.data.myAudioDuration  //开始时间
      myAudio.playbackRate = this.data.speed; //  播放速率
    }, 200);
  }
})