本文主要讲解读取本地mp3文件并播放的案例

1、fs是必不可少的文件模块

// 首先引入fs模块
const fs = require("fs")

2、使用fs读取本地媒体文件

let path = "d:\\music.mp3"
// 创建流对象(方法的第一个参数是文件路径,第二个参数是流的配置,具体查看node.js文档)
let rs = fs.createReadStream(path, {
	  flags: "r",
      encoding: null,
      fd: null,
      autoClose: true,
      start: 0,
})

3、监听流的读取

let chunks = []  // 创建存放数据块的数组,用以存放读取到的数据块,在后续进行消费
// 每当流将数据块的所有权移交给消费者时,则会触发 'data' 事件。
ws.on("data", (chunk) => chunks.push(chunks))
// 当所有的数据块读完后,触发end事件
ws.on("end", () => {
	// 在这里处理读取到的媒体流
	// 将收集到的数据块进行base64处理
	// 这就是媒体的数据,将其放至在audio/video标签的src属性即可播放
	let bs = Buffer.concat(chunks).toString("base64") 
})

4、播放媒体

// 将获取到的base64媒体数据进行播放
// 这里演示音频的播放
 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);
});

总结

到此这篇关于nodejs读取本地mp3和mp4等媒体文件并播放的文章就介绍到这了,更多相关nodejs读取本地媒体文件播放内容请搜索阿兔在线工具以前的文章或继续浏览下面的相关文章希望大家以后多多支持阿兔在线工具!

点赞(1)

微信公众账号

微信扫一扫加关注

发表
评论
返回
顶部