成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

【小玩】cc-audiobuffer 一個切片語音拼接工具

2shou / 1246人閱讀

摘要:解決方法大神中的進(jìn)行瀏覽器錄音和切片膜拜,使用七牛云存儲,轉(zhuǎn)發(fā)并獲得切片語音的最后最后,就是拼接語音啦,所以就產(chǎn)生了這個工具。事件監(jiān)聽,監(jiān)聽對象中的事件作為下一段語音播放的標(biāo)志。反思一下最近真是忙成象拔蚌,這個工具做的很急,自我安慰下。

源碼在最后,喜歡就給個Star !

萌新跪求優(yōu)化指導(dǎo),請F(tuán)orks

萌新瑟瑟發(fā)抖

話說在那么緊張的大三快要找實(shí)習(xí)了而自己還在玩這些真的好嗎?T_T

這個小工具是我在最近解決項(xiàng)目問題中制作的。

背景是這樣的:作為前端的萌新,被主程老大們嚇得瑟瑟發(fā)抖。語音實(shí)時通訊!這個是最近項(xiàng)目中的一個里程碑,也是一個難點(diǎn)所在。主程老大們的想法是,瀏覽器錄音,切片,通過服務(wù)器轉(zhuǎn)存再通過廣播Url的方式進(jìn)行轉(zhuǎn)發(fā)。使得各個客戶端都可以實(shí)時通訊。

解決方法:大神 muaz-khan WebRTC中的 MediaStreamRecorder 進(jìn)行瀏覽器錄音和切片(膜拜),使用七牛云 存儲,轉(zhuǎn)發(fā)并獲得切片語音的Url!最后最后,就是拼接語音啦,所以就產(chǎn)生了這個cc-audiobuffer工具。

直接看實(shí)現(xiàn)

cc-audiobuffer采用了ES6封裝類來實(shí)現(xiàn),并且使用babel轉(zhuǎn)義。

連續(xù)播放的實(shí)現(xiàn)

遞歸的思想,只要緩沖區(qū)中還有Audio,就繼續(xù)播放。

事件監(jiān)聽,監(jiān)聽Audio對象中的 ended 事件作為下一段語音播放的標(biāo)志。

play() {
        const _this = this
        if (this.isHasBuffer()) {
            this.currentAudio = this.shiftBuffer()
            this.currentAudio.play()
            _this.currentAudio.addEventListener("ended", function () {
                _this.play()
            }, false)
        }else{
            this.currentAudio=null
        }
    }
語音提前加載的實(shí)現(xiàn)

在語音的Url加入緩沖區(qū)的時候,使用Audio對象的preload屬性實(shí)現(xiàn)。

let audio = new Audio(url)
audio.preload = "auto"
this.AudioUrlBag.push(audio)
動態(tài)語音加載的實(shí)現(xiàn)

CCAudioBuffer有pushBuffer("url") 方法,如果緩沖區(qū)有Audio正在播放的話,此方法將新的Audio加入隊(duì)列,如果緩沖區(qū)中沒有Audio播放,將會將Audio加入緩沖區(qū)同時自動播放新的Audio。

 pushBuffer(url) {
        if(!this.isHasCurrentAudio()){
            let audio = new Audio(url)
            audio.preload = "auto"
            this.AudioUrlBag.push(audio)
            this.play()
        }
        else{
            let audio = new Audio(url)
            audio.preload = "auto"
            this.AudioUrlBag.push(audio)
        }
    }
想試一下嗎? 安裝

npm:

npm install cc-audiobuffer
import CCAudioBuffer from "cc-audiobuffer"

script:

使用

無參數(shù)創(chuàng)建

let CCAudioBuffer = new CCAudioBuffer()

CCAudioBuffer.pushBuffer("url")

當(dāng)有新的url語音地址傳過來的時候,CCAudioBuffer會提前加載并且自動播放語音。不管何時調(diào)用pushBuffer("url"),這些語音都會依次進(jìn)入緩沖區(qū)且連續(xù)播放直到緩沖區(qū)為空。

有參數(shù)創(chuàng)建

let CCAudioBuffer= new CCAudioBuffer([new Audio("url"),new Audio("url"),new Audio("url")])

CCAudioBuffer.play()

CCAudioBuffer.pushBuffer("url")

當(dāng)你有參數(shù)創(chuàng)建時,參數(shù)規(guī)定是Audio對象的一個數(shù)組。

接下來需要調(diào)用play() 接口保證參數(shù)內(nèi)的Audio播放。

pushBuffer() 的作用和無參數(shù)創(chuàng)建一樣。

反思一下

最近真是忙成象拔蚌,這個工具做的很急,自我安慰下。

源碼很短很短,也沒有考慮到對象內(nèi)部的一些私有封裝什么的。還是想以后有時間能重寫一下。

也寫寫些請求啥的,希望請教大家,問問大家有沒有優(yōu)化方案什么的,也給小生我上門課。

最后這里是Gayhub源碼

喜歡給個Star!指教給個Forks!

戳我

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/81836.html

相關(guān)文章

  • cc-audiobuffer 2.x 版本

    摘要:源碼的升級解釋函數(shù)無論在一開始播放和暫停之后繼續(xù)播放都要調(diào)用。接下來即將要實(shí)現(xiàn)的功能接下來的計劃單例模式報錯處理暫停播放繼續(xù)播放清空隊(duì)列優(yōu)化 Gayhub 源碼與2.x文章 喜歡給個Star ! 不斷完善更新中 1.x版本文章: 文章 更新功能 當(dāng)前播放語音暫停 當(dāng)前播放語音繼續(xù)播放 清空當(dāng)前的語音隊(duì)列 使用請看 源碼Markdown 。 源碼的升級 _playNext() {...

    qpal 評論0 收藏0
  • Numpy數(shù)組的索引與切片和變形拼接分裂

    摘要:一一維數(shù)組的索引與切片對象的內(nèi)容可以通過索引或切片來訪問和修改,與中的切片操作一樣。在指定位置分裂數(shù)組本身作為一個參數(shù),分類位置構(gòu)成的列表作為第二個參數(shù)同時也可以對一維數(shù)組和多位數(shù)組進(jìn)行操作。 1.概述 今天我們來講一下Numpy數(shù)組的索引與切片,numpy數(shù)組的索引與切片和Python中的切片與索引的作用相同,可以快速的取出數(shù)據(jù),進(jìn)行下一步的運(yùn)用或者查看,但是兩種切片還有一些不同的地...

    miracledan 評論0 收藏0
  • Python進(jìn)階:切片的誤區(qū)與高級用法

    摘要:與純占位符相對應(yīng),非純占位符的切片是非空列表,對它進(jìn)行操作賦值與刪除,將會影響原始列表。不同位置的替換非等長替換刪除元素切片占位符可以帶步長,從而實(shí)現(xiàn)連續(xù)跨越性的替換或刪除效果。 2018-12-31 更新聲明:切片系列文章本是分三篇寫成,現(xiàn)已合并成一篇。合并后,修正了一些嚴(yán)重的錯誤(如自定義序列切片的部分),還對行文結(jié)構(gòu)與章節(jié)銜接做了大量改動。原系列的單篇就不刪除了,畢竟也是有單獨(dú)成...

    liaorio 評論0 收藏0
  • 【Python從入門到精通】五萬六千字對Python基礎(chǔ)知識做一個了結(jié)吧?。ǘ耍局档檬詹亍?/b>

    摘要:它是一門解析型的語言,何為解析型語言呢就是在運(yùn)行時通過解析器將源代碼一行行解析成機(jī)器碼。而像語言,等則是編譯型的語言,即通過編譯器將所有的源代碼一次性編譯成二進(jìn)制指令,生成一個可執(zhí)行的程序。 ...

    leeon 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<