nodejs读取本地mp3、mp4等媒体文件并播放

本文主要讲解读取本地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);
    });
    
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值