[김명호]님이 남기신 글:
>정말 무슨 말로 감사의 마음을 전해야 할 지 모르겠습니다.
>님의 메일 받고서 수정한 결과 원하는 바대로 작동이 되었습니다.
>순간 나도 모르게 쾌재의 함성이 터져 나오더군요.
>정말 근처에 계시면 한턱 대접해드리고 싶은 마음입니다.
>정말 이것 때문에 몇일을 혼자서 끙끙 댔는데 한순간에 해결이 되니
>너무나 기뻤습니다.
>다시 한번 감사의 말씀을 드립니다.
>
>욕심을 내자니 한도 끝도 없는 것 같은데..
>염치없지만 정말 고수분을 만난 김에 한가지만 더 부탁드려도 될런지요?
>현재
>
><?
>require "../dbconn.php";
>
>$connect=mysql_connect($host_name,$user_name,$db_password);
>mysql_select_db($db_name, $connect);
>
>$table = 'zetyx_board_'.$id;
>$sql = "SELECT subject, name, sitelink1, sitelink2, file_name1, file_name2, memo FROM
>$table WHERE no='$no'";
>
>if($result = mysql_query($sql,$connect))
>{
>$data = mysql_fetch_assoc($result); // is array
>mysql_close($connect);
>} else
>{
>echo '쿼리실패...'.$sql;
>exit;
>}
>
>
>$subject = $data['subject'];
>$m_memo = explode('|',$data['memo']);
>
>$soge = $m_memo[0];
>$soge = $m_memo[0];
>$song1 = $m_memo[1];
>$song2 = $m_memo[2];
>$song3 = $m_memo[3];
>$song4 = $m_memo[4];
>$song5 = $m_memo[5];
>$song6 = $m_memo[6];
>$song7 = $m_memo[7];
>$song8 = $m_memo[8];
>$song9 = $m_memo[9];
>$song10 = $m_memo[10];
>$song11 = $m_memo[11];
>$song12 = $m_memo[12];
>$song13 = $m_memo[13];
>$song14 = $m_memo[14];
>$song15 = $m_memo[15];
>?>
>
>이런 식으로 15곡의 음악을 배열로 뽑아와 각 곡을 클릭하면 새창으로 띄워져 노래가 잘 나옵니다.
>근데 전곡을 연속재생하여 감상할 수 있는 버턴을 만들고 싶거든요.역시 팝업창으로 띄워서요.
>이 노래들을 순차적으로 재생 가능한 지 모르겠습니다.
>경우에 따라 15곡이 안될 경우도 있거든요..
>욕심을 좀 더 내자면 15곡 리스트를 보여주고 제목을 클릭하면 그 곡을 재생할 수 있으면 더 바랄 바 없겠구요.(너무 욕심이 많죠?^^)
>제로보드 음악 게시판 중 선택한 곡들을 연속재생하여 듣는 아래 소스를 응용하면 될 것 같은데...
>
><?
>
>require "dbconn.php";
>
>$connect=mysql_connect($host_name,$user_name,$db_password);
>mysql_select_db($db_name, $connect);
>
>$checked_song=explode("^",$selected);
>$array_cnt=count($checked_song);
>
>// Make ASX File
>$fp=fopen("songs.asx","w");
>if(!$fp) die("Cannot Make ASX File");
>$asx_head=$asx_head."<ASX version=\"3\">\n<TITLE>GGAMBO MUSIC
>BOARD</TITLE>\n";
>fwrite($fp, $asx_head);
>
>// Listing Selected Songs
>for($i=0;$i<$array_cnt-1;$i++)
>{
>$temp=mysql_fetch_array(mysql_query("select subject, name, sitelink1, sitelink2,
>file_name1, file_name2, memo from zetyx_board_$id where no='$checked_song[$i]'",
>$connect));
>$subject[$i]=stripslashes($temp[subject]);
>$singer[$i]=stripslashes($temp[name]);
>$memo[$i]=nl2br(stripslashes($temp[memo]));
>$subject100=$subject[$i];
>
>$memo[100]=$memo[100]."$memo[$i]";
>
>//echo("$subject[$i]"." -
>"."<b>$singer[$i]</b><BR>");
>$song_path1[$i]=$temp[sitelink1];
>$song_path3[$i]=$temp[file_name1];
>$song_path="<ENTRY>\n\t<REF
>HREF=\"".$song_path1[$i]."\"/>\n</ENTRY>\n";
>fwrite($fp, $song_path);
>
>//Hit Up
>mysql_query("update zetyx_board"."_$id set hit=hit+1 where
>no='$checked_song[$i]'");
>}
>
>// Close ASX File
>$asx_tail="</ASX>";
>fwrite($fp, $asx_tail);
>
>fclose($fp);
>
>mysql_close($connect);
>$subject=$temp[subject];
>$singer=$temp[name];
>?>
>
>선택한 곡을 asx파일 형태로 생성해서 재생이 되는 것 같은데...
>부족한 실력에 아무리 삽질을 해봐도 뜻대로 되질 않네요.
>이것만 완성되면 게시판 작업이 100% 만족한 수준으로 완성될 것 같은데...
위의 ASX 리스트 파일을 동적으로 만들어 뿌려주기 전에
헤더를 클라이언트에게 날려줘야 합니다.
ex)
header('Content-Disposition: inline; filename=playlist_lcn.asx');
header('Content-Type: application/vnd.ms-asx');
만약 내부적인 Object 를 생성하고자 한다면 더 복잡할 수 있습니다.
(이건 제가 calssid 때문에 포기한 상태라서....T.T)
>바쁘고 귀찮으시더라도 마지막 한번만 더 도움을 주시면
>너무나 감사하겠습니다.
>님의 도움으로 거의 마무리단계에 있는 게시판 주소입니다.
>http://goccm.com/bbs/zboard.php?id=song2
========================================
MS WMP 은 참으로 다루기 힘듭니다.
예전에 PHP 만으로 스트리밍을 시도하다고 WMP 쪽을 결국 포기했습니다.
MS WMP 는 정말이지.... mms 가 아니고서는 좀처럼 다루기 힘들더군요.
(한마디로 지맘대로 헤더를 옮겨가는 현상들...그리고 버전 차이...)
http://linuxchannel.net/mp3stream/
가 현재 중단된 상태입니다.
일부 WMP 도 지원하지만 앞서 투털대듯이 완벽하지 않습니다.
그리도 또 한가지 하나의 창을 띄어서 그 안에 내부적인 Object로
실행하고자 한다면
BJECT classid 가 있어야 합니다. 이것도 다른 사람이 사용하는
ID 를 그대로 사용하면 안됩니다.. 한마디로 보안문제...T.T
http://ftp.linuxchannel.net/devel/php_stream/mp3stream/play.php
에 보시면 ASX v3.0 용으로 리스트를 만드는 내용이 있으니
참고하세요. ASX v3.0 이 아닌 경우는 더 복잡합니다.
서버와 클라이언트간의 헤더에 관해서 좀더 깊이 공부해 보시고
그 원리를 터득하면 구현할 수 있습니다.
참고로,
위의 PHP/mp3stream 은
1. 골라서 듣기 및 쿠기 저장
2. 원하는 하나만 듣기 또는 골라서 듣기, 또는 다운로드
3. 하위의 전체 듣기
4. mono/stero 로 듣기
5. winamp/wmp 로 듣기 (불안정)
6. 사용자 설정(인터페이스)
7. text, CD 커버 이미지 출력
8. 기타 아직 구현되지 않은 기능....등등
이 있습니다.
제로보드는 제가 아직도 사용해 보질 않아서 어떤 기능이 있는지
잘 모릅니다. 전에 잠깐 소스를 들여다 보고 자바스크립트에 경악하고
포기했습니다.. |