여기에 질문 해도 되는건지 모르겠네요... > 그누4 질문답변

그누4 질문답변

그누보드4 관련 질문은 QA 로 이전됩니다. QA 그누보드4 바로가기
기존 게시물은 열람만 가능합니다.

여기에 질문 해도 되는건지 모르겠네요... 정보

여기에 질문 해도 되는건지 모르겠네요...

첨부파일

radio_previl.zip (46.3K) 4회 다운로드 2008-11-25 00:41:57

본문

아래의 라디오 프로그램을 사용하고 싶은데요..
http://dev.previl.net/index.php?channel=down&code=down&page=2&pmode=view&no=2

제가 원하는건 리스트를 새창에서 띄운 후 채널을 선택해서 듣고싶은데요

어떻게 하면 될까요? 흰트라도 부탁합니다...


- 아래는 라디오 프로그램 소스입니다. (1개로 실행됩니다. [index.html])


<html>
<head>
<style>
A:link,A:visited,A:active {font-family:돋움,돋움체; color:#ED6C1F;font-size:8pt;letter-spacing:-1;text-decoration:underline;}
A:hover {font-family:돋움,돋움체; color:#ED6C1F;font-size:8pt;letter-spacing:-1;text-decoration:underline;}
div,font {font-family:돋움,dotum; color:#555555;font-size:8pt;letter-spacing:-1}
font.num {font-family:tahoma; font-size: 7pt; color:#1CB20C;}
.all { border-width:1; border-color:#dadada; border-style:solid; }
</style>

<script>
var ckMute =1;
var setVolMove=false;
var ckPlay=1;
var ckNum=1;
var ckKbs =0;
var Channel = Array ();
Channel[1] = Array("mms://liveradio.imbc.com/imbcSFM?HYAHazWbCenz7P/e4G7+fsLHAw1/WjdIbd50tnxHwDeC6uumcsNNErfuviJIDB1uE4CUwU6TmR0=","MBC FM");
Channel[2] = Array("mms://liveradio.imbc.com/imbcMFM?gIwsy2z7HYA6lgMyo7dYxQIlye3MSJfibd50tnxHwDeC6uumcsNNErfuviJIDB1uE4CUwU6TmR0=","MBC FM4U");
Channel[3] = Array("http://main.kbs.co.kr/asx/live_radio.php?url=L_1FM","KBS1 FM");
Channel[4] = Array("http://main.kbs.co.kr/asx/live_radio.php?url=L_2FM","KBS2(COOL) FM");
Channel[5] = Array("http://main.kbs.co.kr/asx/live_radio.php?url=L_1RADIO","KBS 1RADIO");
Channel[6] = Array("http://main.kbs.co.kr/asx/live_radio.php?url=L_2RADIO","KBS 2RADIO(HAPPY FM)");
Channel[7] = Array("http://main.kbs.co.kr/asx/live_radio.php?url=L_3RADIO","KBS 3RADIO");
Channel[8] = Array("mms://live.sbs.co.kr/fm","SBS POWER FM");
Channel[9] = Array("mms://live.sbs.co.kr/am","SBS LOVE FM");
Channel[10] = Array("http://player.bugs.co.kr/RadioPlayer/asx.asp?channel=ch1_1","BUGS 가요뉴히트");
Channel[11] = Array("http://player.bugs.co.kr/RadioPlayer/asx.asp?channel=ch1_2","BUGS 팝뉴히트");
//Channel[12] = Array("http://nanpasun.net/listen.asx","난파선 음악방송");
Channel[12] = Array("http://sc05.saycast.com:8018","미인방송국(20/30대)");
function drag_dropie(){
vol_length=36;
vol_startpoint=131;
if (setVolMove==true){
var mov = Pos_Left+event.clientX-XX;
if ((mov >= vol_startpoint)  && (mov < vol_startpoint+vol_length)){
document.all.volbar.style.pixelLeft=Pos_Left+event.clientX-XX;
per=(166-volbar.style.pixelLeft)/vol_length;
MPlayer.settings.Volume =100-(100*per);
}return false;
}
}

function SetVolume(){
XX=event.clientX;
Pos_Left=volbar.style.pixelLeft;
setVolMove=true;
document.onmousemove=drag_dropie;
if (document.all){document.onmouseup=endVolume;}
}

function endVolume(){
if (setVolMove==true){
setVolMove=false;
return false;
    }
}

function PlayIt(){
    if(!MPlayer.url)MPlayer.url=Channel[1][0];
MPlayer.controls.Play();
Buffers.innerHTML="";
}


function StopIt(){
    Buffers.innerHTML="";
MPlayer.controls.Stop();
if(ckKbs==1) {
    channelInfo.innerHTML="<font style='color:#ED6C1F'>CH"+ckNum+"</font> <font>"+Channel[ckNum][1]+"</font>";
ckKbs=0;
    } 
}

function MuteIt(){
    if(ckMute==1){
Status.src="img/status_mute.gif";
Speker.src="img/b_speker_off.gif";
ckMute=2;
if(MPlayer.playState=="3") MPlayer.settings.mute = true;
    } else {
Speker.src="img/b_speker_on.gif";
ckMute=1;
if(MPlayer.playState=="3") {
   
Status.src="img/status_play.gif";
MPlayer.settings.mute = false;
        } else {
    Status.src="img/status_stop.gif";
        }
    }
}

function ChannelIt(num){
  if(MPlayer.playState=="3") MPlayer.controls.Stop();
Status.src="img/status_searching.gif";
channelInfo.innerHTML="<font style='color:#ED6C1F'>CH"+num+"</font> <font>"+Channel[num][1]+"</font>";
ckNum=num;
MPlayer.url=Channel[num][0];
MPlayer.controls.Play();
}

function setStatus(){
    var bf = parseInt(MPlayer.network.bufferingProgress);
if(bf>0 && bf < 95 && MPlayer.playState!="2" && MPlayer.playState!="1") {
Buffers.innerHTML=" <font class=num>"+bf+"%</font>";
setTimeout("setStatus()", 1000);
} else Buffers.innerHTML="";
}


</script>

<script FOR="MPlayer" EVENT="playStateChange" LANGUAGE="JScript">       
<!--
        Buffers.innerHTML="";
switch(playState) {
         
                case 0:
        document.Status.src="img/status_searching.gif";        
                        break;
                case 1: case 2:
                        document.Status.src="img/status_stop.gif";
                        break;
case 3:
        document.Status.src="img/status_play.gif";        
        if(ckKbs==1) {
    channelInfo.innerHTML="<font style='color:#ED6C1F'>CH"+ckNum+"</font> <font>"+Channel[ckNum][1]+"</font>";
ckKbs=0;
                        }
                        break;
                case 7 : case 9 :        
              document.Status.src="img/status_connecting.gif";                       
if(ckNum>2 && ckNum<8) {
                          channelInfo.innerHTML="<font style='color:#ED6C1F'>먼저 KBS에 </font><a href='http://www.kbs.co.kr/asx/login/SSOLogon.php' target=_blank' onfocus='this.blur();'>로그인</a> <font style='color:#ED6C1F'>하셔야 됩니다.</font>";
}
if(ckNum==8 || ckNum==9) {
                          channelInfo.innerHTML="<font style='color:#ED6C1F'>먼저 SBS에 </font><a href='http://login.sbs.co.kr/Login/Login_PopupType2.jhtml' target=_blank' onfocus='this.blur();'>로그인</a> <font style='color:#ED6C1F'>하셔야 됩니다.</font>";
}
ckKbs=1;
                        break;
                case 6:
        document.Status.src="img/status_buffer.gif";
setTimeout("setStatus()", 1000);
                        break;
                default :         
document.Status.src="img/status_stop.gif";        
                        break;               
        }

//-->
</script>

</head>
<body topmargin=0 leftmargin=0  bgcolor=#ffffff>
<TABLE width=188 cellpadding=2 cellspacing=0 border=0 class=all bgcolor=#efefef>
<TR>
    <TD align=center valign=top>
        <TABLE width=182 cellpadding=0 cellspacing=0 border=0 bgcolor=#ffffff>
        <TR><TD align=center> 
    <TABLE width=172 cellpadding=0 cellspacing=0 border=0 bgcolor=#ffffff>
        <TR><TD height=8 colspan=2></TD></TR>
<TR>
    <TD height=18 background="img/status_bg.gif" align=right colspan=2>
    <TABLE width=89 height=18 cellpadding=0 cellspacing=0 border=0>
<TR><TD><img src="img/status_stop.gif" border=0 name=Status align=absmiddle><span id=Buffers></span></TD></TR>
</TABLE>
</TD>
        </TR>
<TR><TD height=8 colspan=2></TD></TR>
<TR>
    <TD width=108 valign=top>
      <TABLE width=108 cellpadding=0 cellspacing=0 border=0>
<TR height=13>
    <TD align=center width=18><img src="img/channel_1.gif" border=0 width=13 height=13 style="cursor:hand" onclick="ChannelIt('1');" id=chs1></TD>
<TD align=center width=18><img src="img/channel_2.gif" border=0 width=13 height=13 style="cursor:hand" onclick="ChannelIt('2');" id=chs2></TD>
<TD align=center width=18><img src="img/channel_3.gif" border=0 width=13 height=13 style="cursor:hand" onclick="ChannelIt('3');" id=chs3></TD>
<TD align=center width=18><img src="img/channel_4.gif" border=0 width=13 height=13 style="cursor:hand" onclick="ChannelIt('4');" id=chs4></TD>
<TD align=center width=18><img src="img/channel_5.gif" border=0 width=13 height=13 style="cursor:hand" onclick="ChannelIt('5');" id=chs5></TD>
<TD align=center width=18><img src="img/channel_6.gif" border=0 width=13 height=13 style="cursor:hand" onclick="ChannelIt('6');" id=chs6></TD>
                </TR>
<TR><TD height=8 colspan=6></TD></TR>
<TR height=13>
    <TD align=center width=18><img src="img/channel_7.gif" border=0 width=13 height=13 style="cursor:hand" onclick="ChannelIt('7');" id=chs7></TD>
<TD align=center width=18><img src="img/channel_8.gif" border=0 width=13 height=13 style="cursor:hand" onclick="ChannelIt('8');" id=chs8></TD>
<TD align=center width=18><img src="img/channel_9.gif" border=0 width=13 height=13 style="cursor:hand" onclick="ChannelIt('9');" id=chs9></TD>
<TD align=center width=18><img src="img/channel_10.gif" border=0 width=13 height=13 style="cursor:hand" onclick="ChannelIt('10');" id=chs10></TD>
<TD align=center width=18><img src="img/channel_11.gif" border=0 width=13 height=13 style="cursor:hand" onclick="ChannelIt('11');" id=chs11></TD>
<TD align=center width=18><img src="img/channel_12.gif" border=0 width=13 height=13 style="cursor:hand" onclick="ChannelIt('12');" id=chs12></TD>
                </TR>
</TABLE>
            </TD>
            <TD width=64 valign=top>
    <TABLE width=64 cellpadding=0 cellspacing=0 border=0>
<TR height=13>
    <TD align=center width=32><img src="img/b_play.gif" border=0 width=30 height=13 style="cursor:hand" onclick="PlayIt();"></TD>
    <TD align=center width=32><img src="img/b_stop.gif" border=0 width=30 height=13 style="cursor:hand" onclick="StopIt();"></TD>
</TR>
<TR><TD height=10 colspan=2></TD></TR>
<TR><TD colspan=2 background="img/vol_bg.gif" height=10><img src="img/b_speker_on.gif" border=0 width=14 height=10 name=Speker style="cursor:hand" onclick="MuteIt();"></TD></TR>
</TABLE>
</TD>
        </TR>
<TR><TD height=8 colspan=2></TD></TR>
<TR>
    <TD height=18 background="img/channel_bg.gif" colspan=2 align=center>
    <TABLE width=92% height=18 cellpadding=0 cellspacing=0 border=0>
<TR><TD colspan=2 height=3></TD></TR>
<TR><TD><div id=channelInfo><font>채널을 선택하세요~</font></div></TD></TR>
</TABLE>
</TD>
        </TR>
<TR><TD height=8 colspan=2></TD></TR>
</TABLE>
</TD></TR>
</TABLE>
    </TD>
</TR>
</TABLE>


<object id="MPlayer" classid="CLSID:6BF52A52-394A-11D3-B153-00C04F79FAA6" standby="Loading Microsoft Windows Media Player components..." type="application/x-oleobject " width="0" height="0" VIEWASTEXT>
    <PARAM NAME="AllowScriptAccess" VALUE="never">
    <param name="Volume" value="100">
<param name="ShowControls" value="false">
<param NAME="ShowGotoBar" VALUE="false">
<param name="ShowStatusBar" value="false">
<param NAME="ControlType" VALUE="2">
<param NAME="AutoStart" value="-1">
<param NAME="ShowDisplay" value="-1">
<param NAME="Enabled" VALUE="ture">
<param name="Volume" value="75">
<param name="BufferingTime" value="5">
<param name="EnableContextMenu" value="false">
<param NAME="EnablePositionControls" VALUE="false">
<param NAME="EnableFullScreenControls" VALUE="false">
<param NAME="ShowPositionControls" VALUE="false">
<param name="TransparentAtStart" value="true">
<param name="AnimationAtStart" value="0">
<PARAM NAME="url" VALUE="">
<embed id="MPlayer" type="application/x-mplayer2" pluginspage="http://www.microsoft.com/isapi/redir.dll?prd=windows&amp;sbp=mediaplayer&amp;ar=media&amp;sba=plugin">
    </embed>
</object>


<!-- 음조절 게이지 버튼 레이어 left : 122 ~198 -->
<div id="volbar" style="width:16px; height:9px; position:absolute; left:150px; top:60px; z-index:1;cursor:hand;"><a onMousedown="SetVolume()"><img src="img/vol_bar.gif" width="16" height="9" border="0"></a></div>

<script>
StopIt();

for(i=1;i<13;i++){
  eval("chs"+i+".title=Channel["+i+"][1]")
}
</script>
</body>
</html>
  • 복사

댓글 전체

Hint :
부모창(재생관련)에서 실행 될 소스와 자식창(리스트관련)에서 실행될 소스를 분리를 함
리스트 팝업창을 열음
리스트 팝업창에서 재생을 담담 혹은 넘겨주는 소스에 opener.document.all.샐행아이디명.... 식으로 하면 됨
부모창에서는 팝업 소스만 추가하고 모든 것이 다 실행되는 상태에서
자식창에서는 모든 것을 부모창으로 넘겨줘봤습니다만...
그럴때 부모창을 새로 고침하면 에러가 나네요.
하여 부모창이건 자식창이건 둘중에 하나는 playState에 해당하는 것을
playState2 정도로 고치는 것이 좋을 듯합니다.
안 그러면 에러나네요.

또한, 플레이어 관련소스에 볼륨항목이 중목되어 있습니다.


참고로 다음 항목만 있어도 재생에는 문제 없을 듯합니다만 ...
<script>
var Channel = Array ();
........중략........
Channel[12] = Array("http://sc05.saycast.com:8018","미인방송국(20/30대)");


function ChannelIt(num){
opener.document.all.channelInfo.innerHTML="<font style='color:#ED6C1F'>CH"+num+"</font> <font>"+Channel[num][1]+"</font>";
opener.document.all.MPlayer.url=Channel[num][0];
opener.document.all.MPlayer.controls.Play();
}

</script>


<img src="img/channel_1.gif" border=0 width=13 height=13 style="cursor:pointer" onclick="ChannelIt('1');" id=chs1>
........중략........
새로고침할 필요는 없지만 자식창에서 모든 값(제목 노래주소 버튼효과 볼륨조절등등)을 넘기고 나서 만약에 부모창을 새로고침한다면 에러난다는 말입니다.

모든 값을 넘길 필요가 없다면 위에 제가 쓴 예문(list창임)처럼 분리하고 필요한 것만 쓴다면 에러 안납니다.

자바로 아래 손원규님 글처럼 부모창(opener:자식창을 띄운 창)으로  전체타겟(parent)을 줘서 제어를 해도 되고,
저 방식되로 자바로 새창 띄워서 부모창(opener)에 document id로 값을 넘겨서 제어하면 됩니다.
opener.document.all.실행될id이름.실행코드 순으로 자식창에서 제어합니다.

말이 어렵네요.
index.html [내용추가]

<script>
function newWin(){
 window.open("list.html", 'NewWin', 'left=250,top=250,width=400,height=400,menubar=no,toolbar=no,status=no,scrollbars=yes,resizable=yes');
</script>
<input type="button" OnClick="newWin()" value="음악리스트">

list.html [파일추가]
<input type="button" OnClick="opener.parent.ChannelIt('1');" value="MBC FM">
© SIRSOFT
현재 페이지 제일 처음으로