Concat аудио файлы, а затем вызвать создание файла - PullRequest
0 голосов
/ 16 апреля 2020

Я новичок и пытаюсь объединить папку с аудиофайлами, а затем передать файл создания с помощью ffmpeg в node.js.

Я подумал, что могу вызвать функцию, которая создает файл, с помощью 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';
};
...