Hope is a Dream. Dream is a Hope.

非公開ふぃふぃ工房ブログ

NAudioで信号処理 (その3)

チュートリアル その3

hope-is-dream.hatenablog.com

NAudioをつかってMP3からWAVへ変換

C# Audio Tutorial 3 - Convert MP3 File to Wave File

f:id:hope_is_dream:20170505232831p:plain

MP3FileReaderでmp3ファイルをロード. WaveStreamに変換してあと、WaveFileWriterへ渡す。だけ。おまじない。

 // 3. Convert mp3 -> wav
using (Mp3FileReader mp3 = new Mp3FileReader(open.FileName))
{
    using(WaveStream pcm = WaveFormatConversionStream.CreatePcmStream(mp3))
    {
        WaveFileWriter.CreateWaveFile(save.FileName, pcm);
    }
}
 
using System;
using System.Windows.Forms;
using NAudio.Wave;
namespace Tutorial2
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        /// <summary>
        /// フォームの初期設定。
        /// </summary>
        private void Form1_Load(object sender, EventArgs e)
        {
            // ボタンの初期状態
            this.Text = @"Tutorial 3";
            linkLabel1.Text = "https://www.youtuabe.com/watch?v=l9sT26LEiD4";
        }

        #region Member
        #endregion


        /// <summary>
        /// フォームのクロージング処理
        /// Wave関連オブジェクトのDispose処理を担当
        /// </summary>
        private void Form1_FormClosing(object sender, FormClosingEventArgs e)
        {
        }

        /// <summary>
        /// MP3ファイルをWAVファイルへコンバート
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void button_Convert_Click(object sender, EventArgs e)
        {

            // 1. Open MP3 File
            OpenFileDialog open = new OpenFileDialog();
            open.Filter = "Mp3 File (*.mp3)|*.mp3;";

            if (open.ShowDialog() != DialogResult.OK) return;


            // 2. Select Save WAV File
            SaveFileDialog save = new SaveFileDialog();
            save.Filter = "WAV File (*.wav)|*.wav;";

            if (save.ShowDialog() != DialogResult.OK) return;


            // 3. Convert mp3 -> wav
            using (Mp3FileReader mp3 = new Mp3FileReader(open.FileName))
            {
                using(WaveStream pcm = WaveFormatConversionStream.CreatePcmStream(mp3))
                {
                    WaveFileWriter.CreateWaveFile(save.FileName, pcm);
                }
            }



        }
    }
}