웹마스터 팁
page_full_width" class="col-xs-12" |cond="$__Context->page_full_width">
PHP로 구현하는 음악 감상실
2004.05.21 15:36
배경음악을 자동으로 바꾸어 주는 알고리즘은 [무작위 난수]와 [종료이벤트]를 이용해 구현 합니다.
즉 음악의 선택은 [난수]로, 노래의 전환은 [이벤트]로 ..
먼저 음악 폴더 안에 있는 노래 파일 이름들을 읽어들여 메모리에 보관한 후
노래 이름들 중 무작위로 한곡을 선택하여 embed 태그를 사용해 재생시켜 줍니다.
그리고 자바스크립트로 노래가 끝나면 같은 방식으로 다른 노래가 재생됩니다.
아쉬운 점은 문작위로 곡이 선택되기 때문에 같은 노래가 연속해서 나올 수도 있습니다.
하지만 그럴 확률은 그리 높지 않습니다.
이 음악 전환 알고리즘에서 중요한 부분은 2가지 입니다.
1. 폴더에 들어있는 파일 이름 목록 읽어들이기, 무작위로 노래 선택하기
while ($f_name = readdir($dir_hnd)) // 노래 파일 이름들을 읽어 들입니다.
{
if( !is_dir($f_name) ) $m_name[$f_cnt++] = $f_name; // 노래 파일 이름들을 배열에 저장합니다.
}
// 임의의 곡을 선택하기 위해 난수를 노래 곡수로 나누어 나머지를 구합니다.
// 이 나머지 값은 재생될 노래의 위치를 가르킵니다.
$m_select = rand() % $f_cnt;
2. 곡이 끝나면 자동으로 실행되는 자바스크립트
- 이 부분은 미디어 플레이어가 종료되면서 발생되는 종료 메시지에 의해 실행됩니다.
- 이 자바 스크립트가 없다면 일일이 곡의 시간을 직접 설정해 주어야 하므로 소스가 복잡해 집니다.
<SCRIPT event="EndOfStream" for="bgm" language="javascript">
location.href="./bgmusic.php"; //다시 무작위로 음악이 재생되는 부분입니다.
</script>
즉 음악의 선택은 [난수]로, 노래의 전환은 [이벤트]로 ..
먼저 음악 폴더 안에 있는 노래 파일 이름들을 읽어들여 메모리에 보관한 후
노래 이름들 중 무작위로 한곡을 선택하여 embed 태그를 사용해 재생시켜 줍니다.
그리고 자바스크립트로 노래가 끝나면 같은 방식으로 다른 노래가 재생됩니다.
아쉬운 점은 문작위로 곡이 선택되기 때문에 같은 노래가 연속해서 나올 수도 있습니다.
하지만 그럴 확률은 그리 높지 않습니다.
이 음악 전환 알고리즘에서 중요한 부분은 2가지 입니다.
1. 폴더에 들어있는 파일 이름 목록 읽어들이기, 무작위로 노래 선택하기
while ($f_name = readdir($dir_hnd)) // 노래 파일 이름들을 읽어 들입니다.
{
if( !is_dir($f_name) ) $m_name[$f_cnt++] = $f_name; // 노래 파일 이름들을 배열에 저장합니다.
}
// 임의의 곡을 선택하기 위해 난수를 노래 곡수로 나누어 나머지를 구합니다.
// 이 나머지 값은 재생될 노래의 위치를 가르킵니다.
$m_select = rand() % $f_cnt;
2. 곡이 끝나면 자동으로 실행되는 자바스크립트
- 이 부분은 미디어 플레이어가 종료되면서 발생되는 종료 메시지에 의해 실행됩니다.
- 이 자바 스크립트가 없다면 일일이 곡의 시간을 직접 설정해 주어야 하므로 소스가 복잡해 집니다.
<SCRIPT event="EndOfStream" for="bgm" language="javascript">
location.href="./bgmusic.php"; //다시 무작위로 음악이 재생되는 부분입니다.
</script>
댓글 9
-
ⓜASE™
2004.05.21 19:11
-
리틀보아
2004.05.21 22:23
사랑비bgm. 시노부bgm처럼 쓸수있는건가요? -
ⓜASE™
2004.05.23 12:29
리틀보아//방식이 약간 틀리기는 하지만, PHP가 지원되는 계정에서는 거의 똑같이 사용가능합니다. 단 이녀석을 좀 개조할 정도의 PHP 실력이 필요하죠. -
김대수
2004.06.17 13:29
잘 쓰겠습니다. ^^
개조하면 재미있게 사용할수있겠네요..
좋은 자료 감사합니다. -
세상
2004.07.27 02:50
저도 응용해서 잘 쓰고 있습니다~ 감사~~ ^^ -
박만식
2004.07.15 18:22
^^; 감사히 잘 쓰고 있습니다. 그런데, 홈피에 들어오면 바로 play 되도록 하려면 어떻게 할까요? 우선은 다른 Tip을 찾아서 공부해 보겠습니다.ㅋㅋ -
츠즈키
2004.08.14 11:49
이걸 받아서;;FTP에다가 올려야 하는건가요??
올리는방법을 모르겠다는..ㅠㅠ흑~ 스킨에 올려야하는건가요.?? -
김정희
2006.06.14 15:41
다운 받아 잘쓰고 있고요
php 를 몰라서 그러는데 디렉토리 전체를 읽어 들이던데 그림파일과 음악파일이 같이 있는데
음악파일만 읽어서 재생할려면 어떻게 수정하는지 도와주세요 -
이진혁
2007.05.15 21:29
$m_select_2 = rand() % $f_cnt; // 임의의 곡을 선택하기 위해 난수를 노래 곡수로 나눈 나머지를 구합니다.
$m_select_1 = time(); // 현재 시간을 구합니다.
$m_select = $m_select_2 % $m_select_1; // 현재시간을 난수로 나눈 나머지를 구합니다.
1초에 한번클릭할시 중복 되지않음.
제목 | 글쓴이 | 날짜 |
---|---|---|
초간단 스팸방지 하면서 곧바로 메일 보내기 [3] | U2em | 2004.05.31 |
해당 ftp 파일 서버에서 다른곳의 ftp 파일 서버로 백업용도 및 전송하기.. [9] | 김동욱 | 2004.05.30 |
초간단 설문조사 소스 [3] | 이혁 | 2004.05.27 |
PHP로 구현하는 음악 감상실 [9] | 컴도미 | 2004.05.21 |
[국밥PHP] 1-1(1). 개념정리 Break Time (Build 1) [7] | 9000㎒ | 2004.05.18 |
팁 아닌 팁 한달전... | http://zentoo.com | 2004.05.15 |
포털사이트 처럼 시스템 점검중 만들기 [3] | http://zentoo.com | 2004.05.14 |
PHP 4에서 PHP 5로 이행 [5] | 이종현 | 2004.04.30 |
PHP5 RC2 Released. [4] | 써니루루☆ | 2004.04.27 |
트랙백 구현하기 - 2. 트랙백의 형식 | TheMics | 2004.04.22 |
트랙백 구현하기 - 2. 트랙백의 형식 | TheMics | 2004.04.22 |
엔지오 채널 따라하기 -_-& www자동 붙이기 [6] | 박종찬 | 2004.04.18 |
트랙백 구현하기 - 1. 트랙백이란 무엇인가? [4] | TheMics | 2004.04.18 |
[국에 밥말아먹는 PHP 프로그래밍] 1-1. PHP는 뭐하는 밥이냐?! (상) (Build 2) [17] | 9000㎒ | 2004.04.18 |
배열의 정렬에 대한 약간의 강의 [2] | ♡다솜지기♡ | 2004.04.02 |
드디어 PHP 5 RC1 발표(04.03.18) [8] | 써니루루☆ | 2004.03.19 |
PHP와 MYSQL연동 관련함수 [3] | 백무혼 | 2004.03.07 |
함수] Exec 함수에 대한 간략한 설명 [3] | NS | 2004.03.05 |
초간단 인라이브 방송여부 알아보기 프로그램. [12] | 심심타 | 2004.03.01 |
[허접팁]윈엠프 리스트창에 방송정보 보여주기;;[수정] [5] | 『처니리♂』 | 2004.02.29 |
저도 난수 발생까지는 만들어서 무작위 재생은 성공했는데
<SCRIPT event="EndOfStream" for="bgm" language="javascript">
location.href="./bgmusic.php"; //다시 무작위로 음악이 재생되는 부분입니다.
</script>
이부분을 못 찾아서 해매고 있었지요 'ㅡ'a.
그리고 rand는 특정 수만 더 자주 나올 때가 있어서 mt_rand로 바꿔주시면 좀더 좋을듯..