예전에 dll을 통해 mp3를 재생하는 방법( http://topnanis.tistory.com/136)을 올렸었는데 주석을 원하시는 분들이 계셔서 다시 한번 포스팅합니다.
우선 이 방법은 mp3뿐만 아니라 유사한 방법으로 mpg, wav와 같은 비디오 재생도 가능한듯 보이구요.
( http://blog.naver.com/dinho3/120027507526 )
이해하기 좋으시라고 바로 쓸수 있는 예제로 편집해 보았습니다. 아래 코드는 재생을 위한 최소한의 코드입니다.
using System;
using System.Text;
using System.Windows.Forms;
using System.Runtime.InteropServices;
namespace Playing_MP3_songs
{
public partial class Form1 : Form
{
//c코드로 작성된 dll을 부르기 위함. C#에서 지원하는게 아니므로 네이티브코드에서 작성된 코드를 활용한다는 거네요
//c코드로 작성된 dll을 부르기 위함. C#에서 지원하는게 아니므로 네이티브코드에서 작성된 코드를 활용한다는 거네요
[DllImport("winmm.dll")]
//dll 속에 있는 이 메소드를 사용하겠다. 물론 dll속의 파일을 편집하거나 디버깅을 할수는 없답니다. (.h)에 제공해주시는 것만 쓰는거죠
private static extern long mciSendString(string strCommand, StringBuilder strReturn, int iReturnLength, IntPtr hwndCallback);
private static extern long mciSendString(string strCommand, StringBuilder strReturn, int iReturnLength, IntPtr hwndCallback);
public Form1()
{
// form1내에 버튼등의 UI라 주석처리해봤구요
// form1내에 버튼등의 UI라 주석처리해봤구요
// InitializeComponent();
//파일명은 경로를 찍어주시면 됩니다. debug나 release 폴더 내에 있는 파일을 바로 쓰실때에는 " .\\abc.mp3"
mciSendString("open \"" + "c:\\0.mp3" + "\" type mpegvideo alias MediaFile", null, 0, IntPtr.Zero);
mciSendString("play MediaFile", null, 0, IntPtr.Zero);
}
}
}
끝. 재생이 되는 코드는 임폴트1줄, 전역2줄, 지역에 경로1줄, 실행1줄 총 네줄 입니다.
콘솔창(form에 띄우지 않고) 실행은 되지 않습니다. dll이라 에러문은 뜨지 않습니다.
파일을 리스트에 넣어 곡을 일시정지시키거나 다음곡, 전곡 등의 확장된 기능을 가진 라이브러리를 첨부합니다. 필요하신 분들 사용하세요~
'2_ 바삭바삭 프로그래밍 > C# and Visual C++' 카테고리의 다른 글
[C#] 클래스를 배열로 선언하기 (2) | 2012.06.28 |
---|---|
C# - 입출력, 랜덤, 현재시간, 웹페이지 받아오기 및 다운로드, Alt+F4 방지 (0) | 2012.01.07 |
C# - 트위터 사용 예제 (Using Twitter API Example) (2) | 2011.12.29 |
C# - MS Kinect SDK를 사용해 보자. 키넥트 개발 첫걸음 (1) | 2011.09.28 |
C# - 드래그로 창 이동, 폼 접기 / 폼 펼치기 / 최소화 (1) | 2011.08.17 |