溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

微信小程序怎么實(shí)現(xiàn)獨(dú)立的模塊

發(fā)布時間:2022-01-13 15:35:59 來源:億速云 閱讀:199 作者:iii 欄目:大數(shù)據(jù)

這篇文章主要介紹“微信小程序怎么實(shí)現(xiàn)獨(dú)立的模塊”的相關(guān)知識,小編通過實(shí)際案例向大家展示操作過程,操作方法簡單快捷,實(shí)用性強(qiáng),希望這篇“微信小程序怎么實(shí)現(xiàn)獨(dú)立的模塊”文章能幫助大家解決問題。

voiceplay.js

//voice player

function prepare(){

 var that = this

 var info_pair = wx.getStorageSync('url2FileMap') || [];

 this.urlMap = new Map();

 info_pair.forEach(function(pair){

   that.urlMap.set(pair.url, pair.file);

 });

}

function saveMap(){

 var info_pair = []

 this.urlMap.forEach(function(file, url, map){

   info_pair.push({url:url, file:file})

 });

 wx.setStorageSync('url2FileMap', info_pair);

}

 //播放鈴聲文件,優(yōu)先使用緩存文件,根據(jù)需要下載。

 //var url = that.getRingtoneUrl(index)

function play(url) {

 const app = getApp()

 var that = this

 var savedFile = this.urlMap.get(url)

 if (savedFile != undefined) {

   //已經(jīng)存在緩存文件,直接播放緩存文件

   app.addLog('播放緩存鈴聲')

   wx.playVoice({

     filePath: savedFile,

     fail: function () {

       //播放緩存文件失敗,清除緩存文件信息

       that.urlMap.delete(url);

       that.saveMap();

       //下載并播放緩存文件

       that.downloadAndPlay(url)

     },

   })

 } else {

   //沒有緩存文件,下載并播放

   app.addLog('that.downloadAndPlay')

   that.downloadAndPlay(url)

 }

}

 //下載,保存,播放鈴聲文件。

function downloadAndPlay(url) {

  const app = getApp()

   var that = this

   that.downloadFile({

     url: url,

     success: function (savedFilePath) {

       app.addLog('saveFileSuccess')

       //下載成功,播放文件

       app.addLog('播放下載鈴聲')

       wx.playVoice({

         filePath: savedFilePath,

       })

       //更新緩存文件信息。

       that.urlMap.set(url,savedFilePath);

       that.saveMap();

     }

   })

 }

 //下載并保存文件

 function downloadFile(parameter) {

   const app = getApp()

   var that = this

   wx.downloadFile({

     url: parameter.url,

     success: function (res) {

       //保存臨時文件,以供將來使用

       wx.saveFile({

         tempFilePath: res.tempFilePath,

         success: function (save_res) {

           parameter.success(save_res.savedFilePath)

         }

       })

     },

   })

 }

module.exports = {

 prepare: prepare,

 play: play,

 downloadAndPlay:downloadAndPlay,

 downloadFile:downloadFile,

 saveMap:saveMap

}

用法


經(jīng)過上述處理,我們就得到了一個通用的音頻播放模塊,可以在直接在其他小程序中使用。一共分三步,每步就一行。

導(dǎo)入模塊

const voiceplayer = require('./utils/voiceplayer.js')

目錄有可能需要根據(jù)目錄結(jié)構(gòu)修改。

初始化

voiceplayer.prepare()

調(diào)用prepare函數(shù),取得已經(jīng)保存的緩存文件信息。

播放音頻

voiceplayer.play(media_file_url)

調(diào)用play函數(shù),播放指定的音頻文件。如果沒有緩存文件則首先下載該文件播放并保存以供下次使用。音頻文件需要另外準(zhǔn)備。

關(guān)于“微信小程序怎么實(shí)現(xiàn)獨(dú)立的模塊”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識,可以關(guān)注億速云行業(yè)資訊頻道,小編每天都會為大家更新不同的知識點(diǎn)。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI