nodejs讀取本地mp3和mp4等媒體文件并播放的案例
本文主要講解讀取本地mp3文件并播放的案例
1、fs是必不可少的文件模塊
// 首先引入fs模塊 const fs = require("fs")
2、使用fs讀取本地媒體文件
let path = "d:\\music.mp3" // 創(chuàng)建流對象(方法的第一個參數(shù)是文件路徑,第二個參數(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ù)進行消費 // 每當(dāng)流將數(shù)據(jù)塊的所有權(quán)移交給消費者時,則會觸發(fā) 'data' 事件。 ws.on("data", (chunk) => chunks.push(chunks)) // 當(dāng)所有的數(shù)據(jù)塊讀完后,觸發(fā)end事件 ws.on("end", () => { // 在這里處理讀取到的媒體流 // 將收集到的數(shù)據(jù)塊進行base64處理 // 這就是媒體的數(shù)據(jù),將其放至在audio/video標(biāo)簽的src屬性即可播放 let bs = Buffer.concat(chunks).toString("base64") })
4、播放媒體
// 將獲取到的base64媒體數(shù)據(jù)進行播放 // 這里演示音頻的播放 let src= 'data:audio/mp3;base64,' + bs; let audio = new Audio(); audio.src = src; audio.load(); audio.play();
5、這里在介紹一個解析音頻文件信息的庫 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)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
node微信開發(fā)之獲取access_token+自定義菜單
這篇文章主要介紹了node微信開發(fā)之獲取access_token+自定義菜單,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-03-03npm報錯"A?complete?log?of?this?run?can?be?found?
這篇文章主要給大家介紹了關(guān)于npm報錯"A?complete?log?of?this?run?can?be?found?in:"的解決辦法,文中通過實例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2023-04-04nodejs實現(xiàn)日志讀取、日志查找及日志刷新的方法分析
這篇文章主要介紹了nodejs實現(xiàn)日志讀取、日志查找及日志刷新的方法,涉及nodejs日期時間運算、轉(zhuǎn)換及日志讀寫等相關(guān)操作技巧,需要的朋友可以參考下2019-05-05服務(wù)端nodejs抓取jsonp接口數(shù)據(jù)實現(xiàn)示例
這篇文章主要為大家介紹了服務(wù)端nodejs抓取jsonp接口數(shù)據(jù)實現(xiàn)示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2022-06-06