MP3转换为WAV
using Microsoft.Win32;
using NAudio.Wave;
using NLayer.NAudioSupport;
using System.Windows;
namespace NAudioDemo
{
/// <summary>
/// MainWindow.xaml 的交互逻辑
/// </summary>
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
}
private void Button_Click(object sender, RoutedEventArgs e)
{
OpenFileDialog openFileDialog = new OpenFileDialog();
openFileDialog.Filter = "MP3 Files (*.mp3)|*.mp3|All Files (*.*)|*.*";
openFileDialog.FilterIndex = 1;
if (openFileDialog.ShowDialog() == true)
{
var inputFileName = openFileDialog.FileName;
var outputFileName = inputFileName.Substring(0, inputFileName.Length - 3) + "WAV";
var builder = new Mp3FileReader.FrameDecompressorBuilder(wf => new Mp3FrameDecompressor(wf));
using (var reader = new Mp3FileReader(inputFileName, builder))
{
WaveFileWriter.CreateWaveFile(outputFileName, reader);
}
}
MessageBox.Show("操作成功");
}
}
}
WAV转为MP3
using Microsoft.Win32;
using NAudio.MediaFoundation;
using NAudio.Wave;
using System.Windows;
namespace NAudioDemo
{
/// <summary>
/// MainWindow.xaml 的交互逻辑
/// </summary>
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
}
private void Button_Click(object sender, RoutedEventArgs e)
{
OpenFileDialog openFileDialog = new OpenFileDialog();
openFileDialog.Filter = "WAV Files (*.wav)|*.wav|All Files (*.*)|*.*";
openFileDialog.FilterIndex = 1;
if (openFileDialog.ShowDialog() == true)
{
var inputFileName = openFileDialog.FileName;
var outputFileName = inputFileName.Substring(0, inputFileName.Length - 3) + "mp3";
var mediaType = MediaFoundationEncoder.SelectMediaType(
AudioSubtypes.MFAudioFormat_MP3,
new WaveFormat(44100, 1),
0);
using (var reader = new MediaFoundationReader(inputFileName))
{
using (var encoder = new MediaFoundationEncoder(mediaType))
{
encoder.Encode(outputFileName, reader);
}
}
}
MessageBox.Show("操作成功");
}
}
}