最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

Concat音频文件,然后调用创建文件

网站源码admin23浏览0评论

Concat音频文件,然后调用创建文件

Concat音频文件,然后调用创建文件

我是新手,正在尝试合并音频文件的文件夹,然后在node.js中使用ffmpeg传输创建文件。

我以为我可以用await调用创建文件的函数,然后在完成后代码将继续允许我调用创建的文件。但是,那不是正在发生的事情。我收到“文件未定义”

主要功能

//CONCATS THE FILES
  await concatAudio(supportedFileTypes.supportedAudioTypes, `${path}${config[typeKey].audio_directory}`);

  // CALLS THE FILE CREATED FROM concatAudio
  const randomSong = await getRandomFileWithExtensionFromPath(
    supportedFileTypes.supportedAudioTypes,
    `${path}${config[typeKey].audio_final}`
  );

concatAudio功能

var audioconcat = require('audioconcat');
const getRandomFileWithExtensionFromPath = require('./randomFile');
const find = require('find');

// Async Function to get a random file from a path
module.exports = async (extensions, path) => {
  // Find al of our files with the extensions
  let allFiles = [];

  extensions.forEach(extension => {
    allFiles = [...allFiles, ...find.fileSync(extension, path)];
  });

  await audioconcat(allFiles)
    .concat('./live-stream-radio/final/all.mp3')
    .on('start', function(command) {
      console.log('ffmpeg process started:', command);
    })
    .on('error', function(err, stdout, stderr) {
      console.error('Error:', err);
      console.error('ffmpeg stderr:', stderr);
    })
    .on('end', function(output) {
      console.error('Audio created in:', output);
    });

  // Return a random file

  // return '/Users/Semmes/Downloads/live-stream-radio-ffmpeg-builds/live-stream-radio/final/all.mp3';
};
回答如下:

我解决了它,将其包装到Promise中,我将解决方案调整为适合您的脚本(我未在此代码中进行测试,但几乎相同,希望对某人有帮助:

var audioconcat = require('audioconcat');
const getRandomFileWithExtensionFromPath = require('./randomFile');
const find = require('find');

// Async Function to get a random file from a path
module.exports = async (extensions, path) => {
  // Find al of our files with the extensions
  let allFiles = [];

  extensions.forEach(extension => {
    allFiles = [...allFiles, ...find.fileSync(extension, path)];
  });

  const concatPromise = new Promise(async (resolve, error) => {
    audioconcat(allFiles)
        .concat('./live-stream-radio/final/all.mp3')
        .on('start', function(command) {
            console.log('ffmpeg process started:', command);
        })
        .on('error', function(err, stdout, stderr) {
            console.error('Error:', err);
            console.error('ffmpeg stderr:', stderr);
            error(err);
        })
        .on('end', function(output) {
            console.error('Audio created in:', output);
            resolve(otuput);
        });
    });

// Return a random file (this should return the output string)
return await concatPromise();

  // return '/Users/Semmes/Downloads/live-stream-radio-ffmpeg-builds/live-stream-radio/final/all.mp3';
};
发布评论

评论列表(0)

  1. 暂无评论