国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

微信小程序播放音樂(lè)的方法中的兩種方法

這篇具有很好參考價(jià)值的文章主要介紹了微信小程序播放音樂(lè)的方法中的兩種方法。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

微信小程序播放音樂(lè)的方法有很多種,這里總結(jié)一下其中兩種的優(yōu)缺點(diǎn),主要是最近用到了

audio組件

這個(gè)是最簡(jiǎn)單的

<audio src="播放鏈接" id="music"></audio>

其他的就不多說(shuō)了,說(shuō)一下現(xiàn)在微信文檔里沒(méi)有的action屬性

action屬性可以選擇組件對(duì)應(yīng)的動(dòng)作,比如播放或暫停,具體如下

<audio src="播放鏈接" action="play" id="music"></audio>

或者

data{
    action:{ method:'play' }
}
<audio src="播放鏈接" action="{{action}}" id="music"></audio>

不過(guò)這樣的話要考慮渲染延時(shí)問(wèn)題,具體在這里:audio組件渲染層錯(cuò)誤

audio組件操作簡(jiǎn)單,但是有些功能不好實(shí)現(xiàn),或者說(shuō)功能太單調(diào)了,比如想要一個(gè)自定義的音樂(lè)進(jìn)度條,或者顯示音樂(lè)時(shí)長(zhǎng)和已播放時(shí)間,那么該怎么得到組件中音樂(lè)的時(shí)長(zhǎng)?又怎么跳到對(duì)應(yīng)的進(jìn)度?

之前還有個(gè)audioContext,可以和組件的id綁定,從而操作組件的行為,但是現(xiàn)在audioContext不維護(hù)了,不過(guò)還有個(gè)innerAudioContext

innerAudioContext

可以在page外定義一個(gè)innerAudioContext,這樣可以在其他方法中對(duì)同一個(gè)innerAudioContext進(jìn)行操作,也不需要重復(fù)定義

const innerAudioContext = wx.createInnerAudioContext()
page{

    onload(){
    innerAudioContext.autoplay = true
    innerAudioContext.src = '播放鏈接' 
    var duration = innerAudioContext.duration  //獲取總時(shí)長(zhǎng)
    innerAudioContext.seek(666)      //跳至對(duì)應(yīng)的時(shí)間,單位為秒
    }

}

利用slider實(shí)現(xiàn)進(jìn)度條

<view class="timebox">
  <view>{{passTime}}</view>
  <slider block-size="12" bindchange="sliderChange" value="{{sliderSeek}}"></slider>
  <view>{{musicEndTime}}</view>
</view>
const innerAudioContext = wx.createInnerAudioContext()

Page({

  data: { 
    musicId: "",
    musicDuration: <any>[],
    musicEndTime: "",
    passTime: "00:00",
    sliderSeek: <number>{},
  },

  getMusicEndTime: function () {               //拿到時(shí)長(zhǎng)
    var duration: number
    innerAudioContext.onCanplay(() => {
      innerAudioContext.duration
      setTimeout(() => {
        duration = innerAudioContext.duration
        this.setData({ musicDuration: duration })
        var min = parseInt(duration / 60)
        var sec = parseInt(duration % 60)
        if (min < 10) {
          min = `0${min}`                //以00:00的格式保存
        }
        if (sec < 10) {
          sec = `0${sec}`
        }
        this.setData({ musicEndTime: `${min}:${sec}` })
      }, 10);
    })
  },

  updataSlider: function () {               //自動(dòng)更新進(jìn)度條
    var duration: number
    var value = 0
    let that = this
    var timeSeek
    var interval: number | null = null
    innerAudioContext.onPlay(() => {
      innerAudioContext.duration
      setTimeout(function () {            //setTimeout fuction 是個(gè)閉包
        duration = innerAudioContext.duration;
        if (interval != null) {                //檢查定時(shí)器是否重置
          clearInterval(interval)              
          console.log("interval!=null")
        } else {
          interval = setInterval(function () {             //設(shè)置定時(shí)器
            value += 1
            timeSeek = parseInt(100 * value / duration)
            // console.log(that.data.sliderSeek)
            var min = parseInt(value / 60)
            var sec = parseInt(value % 60)
            if (min < 10) {
              min = `0${min}`              //改為兩位數(shù)格式
            }
            if (sec < 10) {
              sec = `0${sec}`              
            }
            console.log(min + ":" + sec)
            that.setData({ passTime: `${min}:${sec}` })
            if (timeSeek >= 100) {                      //進(jìn)度條進(jìn)度達(dá)到一百重置
              clearInterval(interval)
              timeSeek = 0
              console.log("進(jìn)度條百分比大于一百")
            }
            that.setData({ sliderSeek: timeSeek })
          }, 1000)
        }
      }, 10)
    })
  },

  onLoad() {
    this.getMusicEndTime()
    this.updataSlider()
    let id = this.data.musicId
    innerAudioContext.autoplay = true
    innerAudioContext.src = 'http://music.163.com/song/media/outer/url?id=' + id
  },
})

?需要注意的duration得這樣拿,不然會(huì)拿到0或者undefined

getMusicEndTime: function () {               
    var duration: number                           
    innerAudioContext.onCanplay(() => {
      innerAudioContext.duration                        //先初始化
      setTimeout(() => {                                //再timeout延時(shí)
        duration = innerAudioContext.duration            //duration才不為0,缺一不可    
      }, 10);
    })
}

有時(shí)間再更新一下滑動(dòng)進(jìn)度條更改歌曲進(jìn)度的實(shí)現(xiàn)文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-458580.html

到了這里,關(guān)于微信小程序播放音樂(lè)的方法中的兩種方法的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 微信小程序--音樂(lè)播放器

    微信小程序--音樂(lè)播放器

    說(shuō)明: 這個(gè)項(xiàng)目旨在練習(xí)組件以及頁(yè)面的設(shè)計(jì)。頁(yè)面和交互的實(shí)現(xiàn)可能有多種方式,這里只為了對(duì)組件和項(xiàng)目的結(jié)構(gòu)進(jìn)行熟悉了解。后續(xù)會(huì)有更加完善的項(xiàng)目。 由于涉及到mp3外鏈導(dǎo)入音樂(lè),預(yù)覽二維碼在外鏈?zhǔn)r(shí)會(huì)出錯(cuò),這里不放預(yù)覽二維碼了;另預(yù)覽二維碼存在有效時(shí)

    2024年02月09日
    瀏覽(25)
  • 微信小程序音樂(lè)播放器實(shí)踐

    微信小程序音樂(lè)播放器實(shí)踐

    1.成品展示: 實(shí)現(xiàn)搜索音樂(lè),同步歌詞,控制播放等功能 2.設(shè)計(jì): 采用微信開(kāi)發(fā)文檔中的audio組件的作為代碼原型,進(jìn)行擴(kuò)展,鏈接audio | 微信開(kāi)放文檔 (qq.com) 3、具體設(shè)計(jì) 思維導(dǎo)圖 鏈接:https://pan.baidu.com/s/1whZC2xOP4HvbDMjMPA7pRQ? 提取碼:ljsb 3.1 播放界面index 3.2 索引界面list

    2024年02月11日
    瀏覽(22)
  • 《微信小程序》音樂(lè)播放器項(xiàng)目

    《微信小程序》音樂(lè)播放器項(xiàng)目

    需求:在裝有node.js的機(jī)器上使用微信開(kāi)發(fā)者工具開(kāi)發(fā)一個(gè)音樂(lè)播放項(xiàng)目 寫(xiě)這個(gè)項(xiàng)目的時(shí)候電腦前后藍(lán)屏了5次,制作不易,希望大佬們給個(gè)雙擊,順子在這感謝啦! 展示: pages–index–index.js 01.png 02.png 02stop.png 03.png 04.png 05.png 06.png banner.jpg banner2.jpg banner3.jpg cover.jpg cover1.png

    2024年02月11日
    瀏覽(29)
  • 微信小程序——【云音樂(lè)播放器】

    微信小程序——【云音樂(lè)播放器】

    目錄 第一章 開(kāi)發(fā)準(zhǔn)備 一、項(xiàng)目結(jié)構(gòu) 二、新建微信小程序項(xiàng)目 第二章 標(biāo)簽頁(yè)切換 一、常用組件介紹 二、編寫(xiě)頁(yè)面結(jié)構(gòu)和樣式 第三章 音樂(lè)推薦 一、組件介紹 二、編寫(xiě)音樂(lè)推薦頁(yè)面結(jié)構(gòu)和樣式 第四章 播放器 一、任務(wù)分析 二、組件介紹 三、實(shí)現(xiàn)播放器功能 四、編寫(xiě)播放器

    2024年02月09日
    瀏覽(26)
  • 音樂(lè)播放器微信小程序

    音樂(lè)播放器微信小程序

    一:學(xué)習(xí)目標(biāo): 掌握swiper組件、scroll-view組件的使用; 掌握image組件的使用; 掌握slider組件的使用; 掌握音頻API的使用; ?二:目錄: 1. 開(kāi)發(fā)前的準(zhǔn)備 1.1?音樂(lè)小程序 項(xiàng)目展示 : 1.1.1: 音樂(lè)推薦 界面展示: 1.1.2: 播放器 界面展示: 1.1.3: 播放列表 界面展示: 1.2: 項(xiàng)目

    2024年02月05日
    瀏覽(19)
  • 微信小程序音樂(lè)播放器【含源碼】

    微信小程序音樂(lè)播放器【含源碼】

    微信小程序音樂(lè)播放器 取源碼私聊

    2024年02月06日
    瀏覽(27)
  • 微信小程序?qū)崿F(xiàn)音樂(lè)播放器(1)

    微信小程序?qū)崿F(xiàn)音樂(lè)播放器(1)

    代碼涉及的主要文件有: app.json app.wxss pages/music/music.json pages/music/music.wxml pages/music/music.wxss pages/music/music.js 另外,你可能需要的圖片資源,在這里! BackgroundAudioManager實(shí)現(xiàn)背景音樂(lè) imzusheng / netease-music-uniapp

    2024年02月09日
    瀏覽(24)
  • 微信小程序仿網(wǎng)易音樂(lè)播放器項(xiàng)目

    微信小程序仿網(wǎng)易音樂(lè)播放器項(xiàng)目

    主頁(yè)樣式 播放頁(yè)樣式 搜索頁(yè)樣式 排行榜頁(yè)樣式 小控件樣式 網(wǎng)易云音樂(lè)API接口 后端接口,使用node寫(xiě)的,使用了網(wǎng)易云音樂(lè)API: 封裝的api文件 主頁(yè)面功能點(diǎn) banner,滑動(dòng)菜單欄采用微信的API( swiper 與 scroll-view )進(jìn)行開(kāi)發(fā) 滑動(dòng)到底部重新獲取后續(xù)的歌曲,使用onReachBottom周期

    2024年02月06日
    瀏覽(30)
  • java微信小程序音樂(lè)播放器分享系統(tǒng)

    java微信小程序音樂(lè)播放器分享系統(tǒng)

    隨著我國(guó)經(jīng)濟(jì)迅速發(fā)展,人們對(duì)手機(jī)的需求越來(lái)越大,各種手機(jī)軟件也都在被廣泛應(yīng)用,但是對(duì)于手機(jī)進(jìn)行數(shù)據(jù)信息管理,對(duì)于手機(jī)的各種軟件也是備受用戶的喜愛(ài),音樂(lè)播放器小程序被用戶普遍使用,為方便用戶能夠可以隨時(shí)進(jìn)行音樂(lè)播放器小程序的數(shù)據(jù)信息管理,特開(kāi)發(fā)了基于音樂(lè)

    2024年02月11日
    瀏覽(26)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包