nodejs讀取本地mp3和mp4等媒體文件并播放的案例
本文主要講解讀取本地mp3文件并播放的案例
1、fs是必不可少的文件模塊
// 首先引入fs模塊 const fs = require("fs")
2、使用fs讀取本地媒體文件
let path = "d:\\music.mp3" // 創(chuàng)建流對(duì)象(方法的第一個(gè)參數(shù)是文件路徑,第二個(gè)參數(shù)是流的配置,具體查看node.js文檔) let rs = fs.createReadStream(path, { flags: "r", encoding: null, fd: null, autoClose: true, start: 0, })
3、監(jiān)聽流的讀取
let chunks = [] // 創(chuàng)建存放數(shù)據(jù)塊的數(shù)組,用以存放讀取到的數(shù)據(jù)塊,在后續(xù)進(jìn)行消費(fèi) // 每當(dāng)流將數(shù)據(jù)塊的所有權(quán)移交給消費(fèi)者時(shí),則會(huì)觸發(fā) 'data' 事件。 ws.on("data", (chunk) => chunks.push(chunks)) // 當(dāng)所有的數(shù)據(jù)塊讀完后,觸發(fā)end事件 ws.on("end", () => { // 在這里處理讀取到的媒體流 // 將收集到的數(shù)據(jù)塊進(jìn)行base64處理 // 這就是媒體的數(shù)據(jù),將其放至在audio/video標(biāo)簽的src屬性即可播放 let bs = Buffer.concat(chunks).toString("base64") })
4、播放媒體
// 將獲取到的base64媒體數(shù)據(jù)進(jìn)行播放 // 這里演示音頻的播放 let src= 'data:audio/mp3;base64,' + bs; let audio = new Audio(); audio.src = src; audio.load(); audio.play();
5、這里在介紹一個(gè)解析音頻文件信息的庫 node-id3
const NodeID3 = require("node-id3"); // path是音頻文件的路徑 NodeID3.read(path, (err, tags) => { if (err) { reject(); } console.log(tags) // 音頻的信息 resolve(obj); });
總結(jié)
到此這篇關(guān)于nodejs讀取本地mp3和mp4等媒體文件并播放的文章就介紹到這了,更多相關(guān)nodejs讀取本地媒體文件播放內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
node微信開發(fā)之獲取access_token+自定義菜單
這篇文章主要介紹了node微信開發(fā)之獲取access_token+自定義菜單,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-03-03npm報(bào)錯(cuò)"A?complete?log?of?this?run?can?be?found?
這篇文章主要給大家介紹了關(guān)于npm報(bào)錯(cuò)"A?complete?log?of?this?run?can?be?found?in:"的解決辦法,文中通過實(shí)例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2023-04-04Node.js的特點(diǎn)和應(yīng)用場(chǎng)景介紹
這篇文章主要介紹了Node.js的特點(diǎn)和應(yīng)用場(chǎng)景介紹,本文講解了Node.js的異步I/O、 事件循環(huán)與回調(diào)函數(shù)、單線程、 跨平臺(tái)等特性,然后總結(jié)了它的使用場(chǎng)景,需要的朋友可以參考下2014-11-11docker中編譯nodejs并使用nginx啟動(dòng)
這篇文章主要介紹了docker中編譯nodejs并使用nginx啟動(dòng)的相關(guān)資料,需要的朋友可以參考下2017-06-06nodejs實(shí)現(xiàn)日志讀取、日志查找及日志刷新的方法分析
這篇文章主要介紹了nodejs實(shí)現(xiàn)日志讀取、日志查找及日志刷新的方法,涉及nodejs日期時(shí)間運(yùn)算、轉(zhuǎn)換及日志讀寫等相關(guān)操作技巧,需要的朋友可以參考下2019-05-05Node.js讀寫文件之批量替換圖片的實(shí)現(xiàn)方法
下面小編就為大家?guī)硪黄狽ode.js讀寫文件之批量替換圖片的實(shí)現(xiàn)方法。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2016-09-09服務(wù)端nodejs抓取jsonp接口數(shù)據(jù)實(shí)現(xiàn)示例
這篇文章主要為大家介紹了服務(wù)端nodejs抓取jsonp接口數(shù)據(jù)實(shí)現(xiàn)示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-06-06