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

