コード例 #1
0
        public void openAudioFileToolStripMenuItem_Click(object sender, EventArgs e)
        {
            //for second load music


            OpenFileDialog open = new OpenFileDialog();

            open_temp = open;

            open.Filter = "(*.wav;*.mp3)| *.wav; *.mp3";

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

            if (audio_player != null && audio_player.stop_flag == false)
            {
                audio_player.StopPlaying();
            }

            Get_audio_file_information_and_refresh_reader();



            sampling_rate = Audio_reader.WaveFormat.SampleRate;
            int bits_per_sample = Audio_reader.WaveFormat.BitsPerSample;

            audio_channel = Audio_reader.WaveFormat.Channels;
            int buflen = (int)(Math.Floor((double)Audio_reader.Length));



            //refresh effect parameter

            equalizer.sampling_rate     = sampling_rate;
            equalizer.samples_per_frame = Samples_per_frame;
            equalizer.audio_channels    = audio_channel;
            equalizer.update_coef();
            equalizer.init_memory();
            three_band_drc.update_music_information(sampling_rate, Samples_per_frame, audio_channel);
            real_time_fft.ini_parameter(sampling_rate, Samples_per_frame, audio_channel);
            //



            bgw_play = new BackgroundWorker();

            audio_player                        = new audio_player_with_effect_class(real_time_fft, three_band_drc, equalizer, bgw_play, Audio_reader, buflen, In_total_byte_per_frame, Samples_per_frame);
            bgw_play.DoWork                    += new DoWorkEventHandler(bgw_start_playing);
            bgw_play.ProgressChanged           += new ProgressChangedEventHandler(bgw_get_current_time);
            bgw_play.RunWorkerCompleted        += new RunWorkerCompletedEventHandler(bgw_run_worker_complete);
            bgw_play.WorkerReportsProgress      = true;
            bgw_play.WorkerSupportsCancellation = true;


            Label_current_time.Text      = (string)"00:00";
            trackbar_playing_time.Value  = 0;
            start_playing_button.Enabled = true;
            Pause_button.Enabled         = false;
            stop_button.Enabled          = false;
            volume.Enabled      = true;
            volume_UI           = volume.Value;
            audio_player.volume = (float)(((double)volume_UI) / 100);
            peak_meter.Value    = 0;
        }