vue.js實(shí)現(xiàn)audio播放amr格式音頻

純前端解碼、播放、錄音、編碼 AMR 音頻,無(wú)須服務(wù)器支持,基于 [amr.js]
注意:由于使用了 amr.js 做編碼和解碼,因此 js 文件(壓縮后,未 gzip)接近 500 KB,使用前請(qǐng)考慮。

安裝

npm i benz-amr-recorder --save

使用時(shí)引用

import BenzAMRRecorder from 'benz-amr-recorder'

html部分

<div class="dialogue-item" v-if="diagItem.msgtype === 'voice'" @click="openRecording(diagItem.url, index)"
               style="cursor: pointer">
    <div class="voice">
        <img src="@/assets/img/voice.gif" alt="" v-if="voiceActive===index">
        <img src="@/assets/img/voice.png" alt="" v-else>
        <span>{{diagItem.voice.play_length}}''</span>
    </div>
</div>

初始化對(duì)象

data() {
  return {
    playRec: null, //播放對(duì)象
    voiceActive: null
  }
}
/******播放語(yǔ)音******/
methods: {
  //播放語(yǔ)音
  openRecording(_url, index) {
    let url = _url.split('.com')[1]
    let vm = this
    if (vm.playRec !== null) {
      vm.stopPlayVoice()
    }
    vm.playRec = new BenzAMRRecorder()
    //??注意跨域問(wèn)題
    vm.playRec.initWithUrl('/record' + url).then(function() {
      vm.voiceActive = index
      vm.playRec.play()
      vm.playRec.onEnded(function() {
        vm.voiceActive = null
      })
    }).catch((e) => {
      console.log(e)
      vm.$message.error('播放錄音失敗')
    })
  },
  //停止播放
  stopPlayVoice() {
    if (this.playRec.isPlaying()) {
      this.playRec.stop()
    }
  },
}
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 問(wèn)題所在:做項(xiàng)目的時(shí)候,要求能在平臺(tái)端播放app上傳而來(lái)的錄音文件,而安卓端目前只能錄制"amr"、"3gp"格式...
    Nanayai閱讀 8,496評(píng)論 3 6
  • benz-amr-recorder 純前端解碼、播放、錄音、編碼AMP音頻,無(wú)需服務(wù)器支持,基于amr.js和Re...
    金桔檸檬加冰閱讀 9,182評(píng)論 1 0
  • 音頻格式即音樂(lè)格式。音頻格式是指要在計(jì)算機(jī)內(nèi)播放或是處理音頻文件,是對(duì)聲音文件進(jìn)行數(shù)、模轉(zhuǎn)換的過(guò)程。音頻格式最大帶...
    NoBugException閱讀 2,066評(píng)論 2 3
  • 以前在前人基礎(chǔ)上重復(fù)造了一個(gè)網(wǎng)頁(yè)錄音的輪子,順帶把github倉(cāng)庫(kù)使用研究了一下,扔到了github上。優(yōu)勢(shì)在于結(jié)...
    高堅(jiān)果兄弟閱讀 8,267評(píng)論 6 10
  • 久違的晴天,家長(zhǎng)會(huì)。 家長(zhǎng)大會(huì)開(kāi)好到教室時(shí),離放學(xué)已經(jīng)沒(méi)多少時(shí)間了。班主任說(shuō)已經(jīng)安排了三個(gè)家長(zhǎng)分享經(jīng)驗(yàn)。 放學(xué)鈴聲...
    飄雪兒5閱讀 7,812評(píng)論 16 22

友情鏈接更多精彩內(nèi)容