Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/68.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何在Node.js中使用ffmpeg转换音频文件时播放音频文件?_Javascript_Node.js_Ffmpeg - Fatal编程技术网

Javascript 如何在Node.js中使用ffmpeg转换音频文件时播放音频文件?

Javascript 如何在Node.js中使用ffmpeg转换音频文件时播放音频文件?,javascript,node.js,ffmpeg,Javascript,Node.js,Ffmpeg,我用ffmpeg为我的discord.js bot创建了一个简单的视频到音频转换器: let stream = //an mp4 stream ffmpeg(stream) .toFormat("mp3") .stream(fs.createWriteStream("./audio.mp3")) .on("end", () => { connection.playStream(fs.createReadStream("./audio.mp3")) }); 这一切都

我用ffmpeg为我的discord.js bot创建了一个简单的视频到音频转换器:

let stream = //an mp4 stream
ffmpeg(stream)
  .toFormat("mp3")
  .stream(fs.createWriteStream("./audio.mp3"))
  .on("end", () => {
    connection.playStream(fs.createReadStream("./audio.mp3"))
  });
这一切都很好,但是使用.on()播放文件(只有在文件完全完成转换后)可能需要一段时间

当ffmpeg转换仍在进行时,是否有一种有效的方法使用connection.playStream播放音频文件或流?

我最终看到并使用了正在转换的文件流。以下是总体思路:

const writeStream = fs.createWriteStream("./audio.mp3");
const stream = //mp4 stream
ffmpeg(stream)
  .toFormat("mp3")
  .pipe(writeStream);
const file = GrowingFile.open("./audio.mp3");
connection.playStream(file);
唯一的缺点是,我仍然被迫将流下载到mp3文件中,而我更愿意跳过这一步,只需使用
connection.playStream
播放ffmpeg的
pipe

如果有人知道如何跳过mp3下载,直接通过流/管道连接到connection.playStream,我们将不胜感激