웹마스터 팁
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초에 한번클릭할시 중복 되지않음.
제목 | 글쓴이 | 날짜 |
---|---|---|
심플한 원단위를 콤마로 나타내주기 [2] | zentoo.com | 2003.11.11 |
플래시느낌의 유동적인 메뉴 [9] | jabusim | 2003.11.13 |
동영상 오른쪽 버튼 방지 소스 입니다... [9] | 김성목 | 2003.11.15 |
자바로 만들어진 계산기 [1] | 현규웅 | 2003.11.20 |
팝업공지창 다시 안뜨게 하는 소스[날짜지정가능] [17] | lemin | 2003.11.20 |
3D 효과의 원형 거울을 띄우자. [6] | 줄리앙 | 2003.11.21 |
익스플로러에서 인쇄 누르면 페이지 이동.... [3] | 조한웅 | 2003.11.28 |
크리스마스 날짜 카운터 [1] | keymove | 2003.12.04 |
소스연구1 테이블 자동으로 늘었다 커지기 태클환영 [9] | 박한웅 | 2003.12.04 |
오른버튼 누를때 메뉴 뜨게하기(깔끔버전)
[5]
![]() | 럽 | 2003.12.09 |
소스보기를 일부 차단하는 방법입니다. [12] | Juny. | 2003.12.12 |
들어갈때 시작페이지 설정하는거... [2] | 쉿!비밀 | 2003.12.17 |
링크에 마우스를 올리면 배경 변하게 하는 소스 | 봉팀장 | 2003.12.30 |
화면 오른쪽 아래부분에 떠있는 메뉴 레이어(마우스 오버시 부메뉴 펼쳐짐) [7] | 봉팀장 | 2003.12.30 |
[초간단 자바스크립트!] 아이프레임 이용한 이미지 갤러리(?) | ∑Ztxy | 2004.01.02 |
마우스 올리면 링크 텍스트를 무지개빛으로_12시20분 수정.;; [1] | keymove | 2004.01.06 |
아기창 자동으루 띄우고 엄마창 자동으루 죽이기 -_-;; [13] | 후르츠 | 2004.01.09 |
[초간단 자바스크립트!] 홈페이지접속 시간,날짜 표시기 [3] | ∑Ztxy | 2004.01.09 |
Thinking In Java 2nd Edition
![]() | n25 | 2004.01.14 |
[초간단 자바스크립트(강의)!]나만의 익스플로러창 만들기[허접] [2] | ∑Ztxy | 2004.01.17 |
저도 난수 발생까지는 만들어서 무작위 재생은 성공했는데
<SCRIPT event="EndOfStream" for="bgm" language="javascript">
location.href="./bgmusic.php"; //다시 무작위로 음악이 재생되는 부분입니다.
</script>
이부분을 못 찾아서 해매고 있었지요 'ㅡ'a.
그리고 rand는 특정 수만 더 자주 나올 때가 있어서 mt_rand로 바꿔주시면 좀더 좋을듯..