🪞.Net Framework/C# Winform

wav플레이어 만들기

Mawile 2021. 1. 7.
728x90

 

개발환경 >> Visual Studio

언어 >> C# WinForm

운영체제 >> Windows10

 


 

안녕하세요.

이번에는 wav음악플레이어를 간단하게 만들어봤어요

심심해서 Xamarin으로 컴퓨터랑 핸드폰연결해서 놀다가

갑자기 뮤직플레이어만들어보고싶어서 급하게 만들어봤습니닷

 


 

[[[   소스코드   ]]]

using System;
using System.Collections.Generic;
using System.Drawing;
using System.IO;
using System.Media;
using System.Windows.Forms;

namespace MusicPlayer
{
    public partial class Form1 : Form
    {
        SoundPlayer player = new SoundPlayer();
        List<Button> btns = new List<Button>();
        FlowLayoutPanel panel = new FlowLayoutPanel();
        int cnt = 0;
        string source = ".\\"; //사운드 경로

        public Form1() { InitializeComponent(); }

        private void Form1_Load(object sender, EventArgs e) {
            panel.Size = new Size(500, 500); //버튼을 리스트형식으로 FlowLayout에 삽입
            panel.Location = new Point(0, 25); //위치
            panel.AutoScroll = true; //자동스크롤
            Controls.Add(panel); //메인패널에 추가
            refresh(); //새로고침
            label1.Text = source;
        }

        private void button1_Click(object sender, EventArgs e)
        {
            refresh(); //새로고침 버튼
        }

        private void btn_Click(Object sender, EventArgs e)
        { //레이아웃에 추가될 버튼들의 이벤트핸들링함수
            var button = (Button)sender; //버튼이름 구하기
            try
            {
                player.SoundLocation = source + button.Text + ".wav";
                player.Load();
                player.Play();
            } catch (Exception) { }
        }

        private void button2_Click(object sender, EventArgs e)
        { //중지버튼
            player.Stop();
        }

        private void refresh()
        { //새로고침함수
            string[] files = Directory.GetFiles(source);
            panel.Controls.Clear();
            btns.Clear();
            cnt = 0;

            foreach (string file in files) //wav파일 필터링
                if (file[file.Length - 4] == '.' && file[file.Length - 3] == 'w' && file[file.Length - 2] == 'a' && file[file.Length - 1] == 'v')
                {
                    btns.Add(new Button());
                    btns[cnt].Text = file.Substring(source.Length, file.Length-source.Length-4);
                    btns[cnt].Click += new EventHandler(btn_Click);
                    btns[cnt].Size = new Size(500, 80);
                    btns[cnt].BackColor = Color.Black;
                    btns[cnt].ForeColor = Color.White;
                    btns[cnt].Font = new Font("Arial", 10, FontStyle.Bold, GraphicsUnit.Point);
                    panel.Controls.Add(btns[cnt]); //FlowLayoutPanel에 버튼추가
                    cnt += 1;
                }
        }

        private void button3_Click(object sender, EventArgs e)
        { //경로설정 버튼
            folderBrowserDialog1.RootFolder = Environment.SpecialFolder.Desktop;
            if (folderBrowserDialog1.ShowDialog() == DialogResult.OK)
            {
                label1.Text = folderBrowserDialog1.SelectedPath;
                source = label1.Text + "\\";
                refresh();
            }
        }
    }
}

 


[[[   시연영상   ]]]

 

 

zzzzzzzzzzzzzzzㅋㅋㅋㅋㅋㅋㅋㅋㅋ

아닠ㅋㅋㅋㅋㅋㅋㅋ...풉ㅋㅋㅋㅋㅋ

흠....

 

노래 죄송합니다 ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ

ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ

노래가사나오자마자 자괴감들어서 바로 중지눌러버리기~~

 


 

 

궁금한 부분있으면 댓글로 질문주세요.

감사합니다~

728x90

댓글