亲宝软件园·资讯

展开

nodejs读取本地媒体文件播放

Mr-阿梓 人气:0

本文主要讲解读取本地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);
});

总结

加载全部内容

相关教程
猜你喜欢
用户评论