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 (바깥 편집)