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è)解析音頻文件信息的庫(kù) 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)文章
nodejs個(gè)人博客開發(fā)第五步 分配數(shù)據(jù)
這篇文章主要為大家詳細(xì)介紹了nodejs個(gè)人博客開發(fā)的分配數(shù)據(jù),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-04-04
node.js 利用流實(shí)現(xiàn)讀寫同步,邊讀邊寫的方法
下面小編就為大家?guī)?lái)一篇node.js 利用流實(shí)現(xiàn)讀寫同步,邊讀邊寫的方法。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-09-09
Node.js內(nèi)置模塊events事件監(jiān)聽發(fā)射詳解
這篇文章主要為大家介紹了Node.js內(nèi)置模塊events事件監(jiān)聽發(fā)射詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-02-02
AngularJS + Node.js + MongoDB開發(fā)的基于高德地圖位置的通訊錄
這篇文章主要介紹了AngularJS + Node.js + MongoDB開發(fā)的基于高德地圖位置的通訊錄,需要的朋友可以參考下2015-01-01
Node.js設(shè)置定時(shí)任務(wù)之node-schedule模塊的使用詳解
node-schedule是 Node.js 的一個(gè)定時(shí)任務(wù)(crontab)模塊。這篇文章主要介紹了Node.js設(shè)置定時(shí)任務(wù)之node-schedule模塊的使用,需要的朋友可以參考下2020-04-04
詳解如何使用Node.js連接數(shù)據(jù)庫(kù)ORM
這篇文章主要為大家介紹了詳解如何使用Node.js連接數(shù)據(jù)庫(kù)ORM示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-12-12
Node.js+Express.js+TS實(shí)現(xiàn)簡(jiǎn)單圖床腳本
在這篇博客文章中,我將介紹如何使用 TypeScript 和 Express 框架來(lái)編寫一個(gè)簡(jiǎn)單的圖床腳本,可以將本地圖片上傳到服務(wù)器,并返回圖片的 URL,這樣,你就可以在 Markdown 文檔中方便地引用圖片,而不用擔(dān)心圖片的存儲(chǔ)和管理問(wèn)題2023-10-10

