research:rpi_radio
차이
문서의 선택한 두 판 사이의 차이를 보여줍니다.
| 양쪽 이전 판이전 판다음 판 | 이전 판 | ||
| research:rpi_radio [2013/07/28 12:32] – [또다른 개선안] changwoo | research:rpi_radio [2014/10/09 21:24] (현재) – 바깥 편집 127.0.0.1 | ||
|---|---|---|---|
| 줄 69: | 줄 69: | ||
| ===== 개선안 ===== | ===== 개선안 ===== | ||
| - | 위 방법은 테스트이고, | + | 위 방법은 테스트이고, |
| + | |||
| + | 아래 스크립트에서 각 방송국(스테이션)은 하위 디렉토리 하나를 점유하고 있으며 각 하위 디렉토리에는 각 채널의 그림 파일과 pls 파일을 보유하고 있다. | ||
| <code php ipcheck.php> | <code php ipcheck.php> | ||
| <?php | <?php | ||
| 줄 87: | 줄 90: | ||
| <code php index.php> | <code php index.php> | ||
| <?php | <?php | ||
| - | function | + | include(' |
| - | { | + | |
| - | $allow = array(" | + | |
| - | foreach($allow as $ip) | + | function get_channels($sitename) |
| - | if(eregi($ip, $_SERVER['REMOTE_ADDR'])) | + | { |
| - | return; | + | |
| - | + | | |
| - | die('Unauthorized'); | + | while(false !== ($entry = readdir($handle))) |
| + | { | ||
| + | $path = pathinfo($entry); | ||
| + | $name = $path['filename']; | ||
| + | $ext = $path[' | ||
| + | |||
| + | if($ext == ' | ||
| + | array_push($channels, | ||
| + | } | ||
| + | sort($channels); | ||
| + | return | ||
| + | } | ||
| + | |||
| + | | ||
| + | { | ||
| + | $exts = array('.png', '.jpg'); | ||
| + | foreach($exts as $e) | ||
| + | { | ||
| + | $imgfile = $channel.$e; | ||
| + | if(file_exists($imgfile)) | ||
| + | return $imgfile; | ||
| + | } | ||
| + | |||
| + | return ""; | ||
| + | } | ||
| + | ?> | ||
| + | < | ||
| + | < | ||
| + | < | ||
| + | < | ||
| + | <meta http-equiv=" | ||
| + | <style type=" | ||
| + | .station {margin-right: | ||
| + | </ | ||
| + | </ | ||
| + | < | ||
| + | < | ||
| + | < | ||
| + | < | ||
| + | <div class=" | ||
| + | < | ||
| + | < | ||
| + | <?php | ||
| + | // print all .pls file in the current directory | ||
| + | $difm = get_channels(' | ||
| + | foreach($difm as $ch) | ||
| + | { | ||
| + | $url = urlencode(" | ||
| + | $img = get_img(" | ||
| + | echo "< | ||
| } | } | ||
| ?> | ?> | ||
| + | </ | ||
| + | </ | ||
| + | <div class=" | ||
| + | < | ||
| + | < | ||
| + | <?php | ||
| + | $skyfm = get_channels(' | ||
| + | foreach($skyfm as $ch) | ||
| + | { | ||
| + | $url = urlencode(" | ||
| + | $img = get_img(" | ||
| + | echo "< | ||
| + | } | ||
| + | ?> | ||
| + | </ | ||
| + | </ | ||
| + | </ | ||
| + | </ | ||
| </ | </ | ||
| 줄 107: | 줄 175: | ||
| ?> | ?> | ||
| < | < | ||
| - | < | + | |
| - | </ | + | </ |
| < | < | ||
| <?php | <?php | ||
| function play($channel) | function play($channel) | ||
| { | { | ||
| - | $filename = str_replace(' | + | |
| - | $cmd = "sudo -u radio mplayer -playlist $filename.pls 1>/ | + | $cmd = "sudo -u radio mplayer -playlist $filename.pls 1>/ |
| - | exec($cmd); | + | exec($cmd); |
| - | echo "< | + | echo "< |
| } | } | ||
| function stop() | function stop() | ||
| { | { | ||
| - | exec(' | + | |
| - | echo "< | + | echo "< |
| } | } | ||
| if($_GET[" | if($_GET[" | ||
| { | { | ||
| - | $channel = $_GET[' | + | |
| - | if(file_exists($channel." | + | echo " |
| - | { | + | |
| - | stop(); | + | { |
| - | play($channel); | + | stop(); |
| - | } | + | play($channel); |
| - | else | + | } |
| - | { | + | else |
| - | | + | { |
| - | } | + | echo " |
| + | } | ||
| } | } | ||
| else if($_GET[" | else if($_GET[" | ||
| { | { | ||
| - | stop(); | + | |
| } | } | ||
| else | else | ||
| { | { | ||
| - | echo " | + | |
| } | } | ||
| 줄 153: | 줄 222: | ||
| </ | </ | ||
| - | 이제는 디렉토리 내부에 pls 파일만 채워 주면 알아서 웹페이지가 갱신되는 편리함이 추가되었다. | + | 이제는 |
| + | |||
| + | {{ : | ||
| ===== 또다른 개선안 ===== | ===== 또다른 개선안 ===== | ||
| - | * pls 파일과 같은 이름의 png 파일이 있으면 로딩할 수도 있을 것이다. | + | * <del>pls 파일과 같은 이름의 png 파일이 있으면 로딩할 수도 있을 것이다.</ |
| * < | * < | ||
| + | * 일지 중지 (pause) | ||
| + | * 볼륨 조정 (up, down, mute) | ||
research/rpi_radio.1375014748.txt.gz · 마지막으로 수정됨: 2014/10/09 21:23 (바깥 편집)
