微信小程序音頻處理audio 使用整理

一、微信小程序音頻處理audio 使用整理

小程序中處理音頻播放,兩種方式

1.小程序的音頻組件 audio 對應 
AudioContext = wx.createAudioContext(string id, Object this); (被放棄,不在升級)

2.使用 純js處理,沒有頁面標籤,支持背景播放

InnerAudioContext 實例,可通過 wx.createInnerAudioContext 接口獲取實例。
注意,音頻播放過程中,可能被系統中斷,可通過 wx.onAudioInterruptionBegin、wx.onAudioInterruptionEnd事件來處理這種情況。
參考文檔:

https://developers.weixin.qq.com/miniprogram/dev/api/media/audio/InnerAudioContext.html

 

二、使用InnerAudioContext 方式播放音頻 案例(推薦)

 

wxml

<view>播放進度</view>

<view>總時長:{{duration}} s</view>
<view>當前時間:{{currentTime}} s</view>

<button type="primary" bindtap="playClick">播放</button>
<button type="warn" bindtap="stopClick">暫停</button>

js 

var audio;

Page({
  /**
   * 生命週期函數--監聽頁面加載
   */
  onLoad: function (options) {
    var _this = this;
    audio = wx.createInnerAudioContext();

    audio.onPlay(() => {
      console.info('開始播放');
    });
    //監聽播放過程,進度處理
    audio.onTimeUpdate(() => {
      //console.info(audio.currentTime,audio.duration);
      _this.setData({
        currentTime: audio.currentTime,
        duration: audio.duration
      });
    });
    //播放結束
    audio.onStop(() => {
      console.info('播放結束');
    });
    //播放暫停
    audio.onPause(() => {
      console.info('播放暫停');
    });
    audio.src = 'http://music.jnqianle.cn/file/audio/46.mp3';

  },
  //播放操作
  playClick: function () {
    var _this = this;
    audio.autoplay = true;
    //判斷是否是播放中
    if (audio.paused) {
      audio.play(); //播放
    } else {
      audio.pause(); //暫停
    }
  },
  //關閉
  stopClick: function () {
    audio.stop();
  }
})

三、使用 Audio組件 播放,這種使用簡單,支持api少 (被放棄中)

wxml


<audio src="{{audioSrc}}" id="audioOne" loop="true"></audio>

<button type="primary" bindtap="playClick">播放</button>
<button type="warn" bindtap="stopClick">結束</button>

js


var audio = null;
Page({
  /**
   * 頁面的初始數據
   */
  data: {
       audioSrc:'',
  },
  /**
   * 生命週期函數--監聽頁面加載
   */
  onLoad: function (options) {
    //創建組件對象,此模式開發放棄
    audio = wx.createAudioContext('audioOne', this);
  },
  //播放操作
  playClick: function () {
    console.info(audio);
    this.setData({
      audioSrc:"http://music.jnqianle.cn/file/audio/46.mp3"
    });
    audio.play();
  },
  //暫定
  stopClick: function () {
    audio.pause();
  }
})

 

更多:

 2021年4月小程序登錄、用戶信息相關接口調整處理

 wx.openDocument()微信小程序打開word文件不能轉發/編輯 問題

 微信小程序Echarts 圖表組件使用整理

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章