Recent Posts
Recent Comments
Link
11-29 16:02
동글동글 라이프
음악을 들어보자! 본문
갓 프로그래밍에 입문한 친구 중에 한명이 MFC로 음악을 재생해주는 프로그램을 만드는 것을 보았다.
괜찮게 만들었길레 어떤점이 제일 어려웠냐고 물어봤더니 모르는 라이브러리를 사용하며
부딛치는 난관들을 극복하기가 어려웠다고 한다.
심심한데 perl로 한번 해볼까? 생각이 들어...
일단 음악파일을 재생해주는 모듈부터 검색을 하였다.
cpan에서 막연하게 MP3만 검색을 했더니 찾고자 하는 모듈이 검색되지 않았는데
10분정도 붙잡고 있었더니 드디어 발견!!
Windows에서 음악파일을 재생 시켜주는 모듈을 발견!
Author을 확인해보니 중국 사람이 만들었는데...
귀엽게 생겨서..... 쫌... ^^;
이제 확인했으니 샤샤샥!
Cpan으로 설치!
cpan shell -- CPAN exploration and modules installation (v1.9205)
ReadLine support enabled
cpan> install Win32::MediaPlayer
--- 생략 ---
Installing C:\Perl\html\site\lib\Win32\MediaPlayer.html
Installing C:\Perl\site\lib\Win32\MediaPlayer.pm
Appending installation info to C:\Perl\lib/perllocal.pod
KENWU/Win32-MediaPlayer-0.2.zip
nmake install -- OK # 오키오키!
SYNOPSIS를 조금만 수정하여 실제로 동작하는지 확인하였다.
use Win32::MediaPlayer;
$mp3_name = 'D:/Music^^/still_on_my_brain.mp3';
$winmm = new Win32::MediaPlayer;
$winmm->load($mp3_name);
$winmm->play;
$winmm->volume(100);
$winmm->seek('00:32');
$mp3_name =~ m!\w+\.mp3!;
print "Playing MP3 file : $&\n";
#$winmm->pause; # Pause music playing
#$winmm->resume; # Resume music playing
print 'Total Length : '.$winmm->length(1),$/;
while(1) {
sleep 1;
print 'Now Position: '.$winmm->pos(1)."\r";
}; |
증명은 할 수 없지만 음악재생이 잘된다;
실행하면 재생되는 음악에 대한 정보가 나온다.
간단한 정규식을 2줄 추가하여 재생되고 있는 파일의 이름이 출력되도록 설정하였다.
Playing MP3 file : still_on_my_brain.mp3
Total Length : 04:39
이제.. 여기다가 살을 붙여보는 작업을 해보려고 한다.
간단히 머릿속에 떠오르는 내용들만 적어보자면...
1. 특정 폴더안에 있는 MP3파일을 재생목록에 넣은뒤 차례대로 재생시킨다.
- 디렉토리 안의 파일명을 모두 읽어와서 mp3파일만 정규식으로 빼낸뒤
배열에 저장 후 플레이 시키면 되지 않을까..
2. 순차적인 재생만이 아닌 랜덤으로 재생도 구현...
- 랜덤함수만 쓰면 뭐...
3. seek프로그램을 보니 구간반복도 기능도 추가 가능할듯...
- A<->B 요거 알고리즘 생각해보니깐 별꺼 없다는... 변수 두개만 있으면 가능 할 듯 한데...
4. gtk2를 사용하여 gui로 만들기...
- OTL... 버튼 구현만 할까... 아니면 메뉴로 재생만 되게 할까...;;
-- 추가 기능 --
애머렛군이 만든 블로그 주소를 검색하면 mp3를 자동 다운받아지는 프로그램도 같이 넣어
검색창을 하나 만들어 mp3수집도 할 수 있도록 하는건 어떨까 하는 생각이...
시간을 들여서 천천히 만들자... Enjoy Perl~^^/
'개발자 이야기 > Perl' 카테고리의 다른 글
perl pack/unpack (1) | 2008.10.11 |
---|---|
음악을 들어보자! #2 (2) | 2008.10.09 |
Chapter 4. Getting Started (3) | 2008.10.07 |
Tutorial Availability & Introduction (0) | 2008.10.07 |
프로야구 순위 출력 (2) | 2008.10.07 |
Comments