2016-05-04 5 views
1

Я хочу микшировать звук, считываемый из двух файлов (1 mp3 и 1 wav (записанный голос)) в один файл (mp3 или wav).Смешать звук, прочитанный из двух исходных файлов

Я прочитал много соответствующих ответов, но не помог мне получить то, что я хотел.

Как этот код ниже генерирует пар как выход. Я не знаю, как правильно вызвать эту функцию и как получить выходной поток как файл mp3/wav в конце.

public static void Combine(string[] inputFiles, Stream output) 
{ 
    foreach (string file in inputFiles) 
    { 
     Mp3FileReader reader = new Mp3FileReader(file); 
     if ((output.Position == 0) && (reader.Id3v2Tag != null)) 
     { 
      output.Write(reader.Id3v2Tag.RawData, 0, reader.Id3v2Tag.RawData.Length); 
     } 
     Mp3Frame frame; 
     while ((frame = reader.ReadNextFrame()) != null) 
     { 
      output.Write(frame.RawData, 0, frame.RawData.Length); 
     } 
    } 
} 
+0

Кто-нибудь собирается ответить? Пожалуйста !! –

+0

Когда вы говорите о слиянии двух файлов, вы хотите, чтобы они были объединены вместе с одинаковым объемом с самого начала? Или вы хотите положить один в конец другого? –

+0

Я хочу слить их так, чтобы оба играли вместе. Его, как я хочу смешать запись пользователя в музыке с помощью кода C#. –

ответ

0

Похоже, вы взяли код от http://mark-dot-net.blogspot.com/2010/11/merging-mp3-files-with-naudio-in-c-and.html. Выезд http://markheath.net/post/mixing-and-looping-with-naudio. Это говорит о петлях, а также о смешивании. Поскольку вы не зацикливаетесь, вам не нужна эта часть.

Обратите внимание, что пример отправляет звук в динамик. Однако вы всегда можете заменить этот вывод (например, WaveFileWriter).

Обратите также внимание, что MixingWaveProvider32 требует, чтобы все входы были одинаковыми WaveFormat. Если это не так, вам нужно будет использовать ресамплер. К счастью, есть http://mark-dot-net.blogspot.com/2014/05/how-to-resample-audio-with-naudio.html, чтобы помочь вам там.

+0

можете ли вы поделиться образцом кода, как я могу выводить в виде mp3 или wav-файла, используя этот «WaveFileWriter»? –