웹마스터 팁
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
제목 | 글쓴이 | 날짜 |
---|---|---|
초간단 스팸방지 하면서 곧바로 메일 보내기 [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 |