FLV 스트리밍 스킨을 만드려고 하는데 ... > 그누4 질문답변

그누4 질문답변

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

FLV 스트리밍 스킨을 만드려고 하는데 ... 정보

FLV 스트리밍 스킨을 만드려고 하는데 ...

본문

고수님들의 도움을 청합니다.
제 개인적 소견으로 98년이후 그동안 동영상 작업을 해본 경험으로는 보안성과
하이브리드 컴파일을 위해서는  MS사의 wmv 보다는 Adobe(macromedia)의 FLV가 훨씬
매력적으로 느껴집니다.
 
또 다른 매력은 접속 건수가 적고 초고속 통신망의 인프라를 구축한 우리나라에서는 굳이
스트리밍 서버(WinMedia/ FlshCom)를 비싸게 구입하지 않아도 니눅스 환경에서 flv를 고화질로 즐길 수 있다는 점입니다.
 
외국에서는 매우 빠르게 avi, mpg, wmv, asf =>flv로 인코딩(고화질 압축 코덱포함) 하는 툴들이 선보이고 있고 PHP 환경에서 FLV 동영상을 구현하는 시도가 많습니다.
 
목표 주제 : flv URL을 입력만 하면 MediaPlayer스킨처럼 flv스킨을 만들고 싶은데 ????    
 
 
현재 MnCast에서는 회원이 직접 동영상을 업로드 시키면서 avi, wmv, mpg=>flv로 변환하여 플래시 파일(mnc_movie.swf)에 링크를 걸어서 구동시키고 있군요.  
 
 
우선 제가 테스트 중인 URL은 ...
 
 
 
그럼 아래 flvplayer.swf URL도 클릭해 해보세요.
 
 
// 위의 flvplayer.swf의 Actions Script

// Global variables
var _error:Boolean = false;
var _ending:Boolean = false;
var _amountLoaded:Number;
var _duration;
var _loaderwidth = loader.loadbar._width;
var _nc = new NetConnection();
// NetConnection has to be initialized before binding to a NetStream
_nc.connect(null);
var _ns = new NetStream(_nc);

// Set visibility to start movie with
fileNotFoundClip._visible = false;
bufferClip._visible = false;
// Check for parameters
// file given?
if (_root.file)
{
 _vidURL = _root.file;
} else {
 _error = true;
 play_btn._visible = false;
 bufferClip._visible = false;
 fileNotFoundClip._visible = true;
}
// BufferTime given?
if(_root.BufferTime)
{
 _ns.setBufferTime(_root.BufferTime);
} else {
 _ns.setBufferTime(3);
}
// Autostart video?
if(_root.autoStart == "true")
{
 streamRestart();
 play_btn.visible = false;
}
loader.loadbar._width = 0;
theVideo.attachVideo(_ns);
statusID = setInterval(videoStatus, 200);
_ns.onStatus = function(info)
{
 trace(info.code);
 if (info.code == 'NetStream.Buffer.Full')
 {
  bufferClip._visible = false;
  _ending = false;
  clearInterval(statusID);
  statusID = setInterval(videoStatus, 200);
 }
 if (info.code == 'NetStream.Buffer.Empty')
 {
  if (!_ending)
  {
   bufferClip._visible = true;
  }
 }
 if (info.code == 'NetStream.Play.Stop')
 {
  bufferClip._visible = false;
 }
 if (info.code == 'NetStream.Play.Start')
 {
  _ending = false;
 }
 if (info.code == 'NetStream.Buffer.Flush')
 {
  _ending = true;
 }
};
playButton.onRelease = function()
{
 _ns.pause();
};
play_btn.onRelease = function()
{
 streamRestart();
 this._visible = false;
};
rewindButton.onRelease = function()
{
  if(_error == false) streamRestart();
};
_ns.onMetaData = function(obj)
{
 _duration = obj.duration;
 times = obj.keyframes.times;
 positions = obj.keyframes.filepositions;
 contextMenu(obj);
 setVideoStage(obj.width, obj.height);
};
function videoStatus()
{
 __amountLoaded = _ns.bytesLoaded / _ns.bytesTotal;
 loader.loadbar._width = __amountLoaded * _loaderwidth;
 //A Problem: Netstream.time might throw higher values than metadataobj.duration!!!
 if(_ns.time <= _duration)
 {
  loader.scrub._x = (_ns.time / _duration) * _loaderwidth;
 }
 
}
function scrubit()
{
 var v3 = Math.floor((loader.scrub._x / _loaderwidth) * _duration);
 if (v3 <= 0)
 {
  streamRestart();
  return undefined;
 }
 var v1 = 0;
 while (v1 < times.length)
 {
  var v2 = v1 + 1;
  if (times[v1] <= v3 && times[v2] >= v3)
  {
   bufferClip._visible = true;
   _ns.play(_vidURL + '?start=' + positions[v1]);
   break;
  }
  ++v1;
 }
}
function streamPause()
{
 _ns.pause();
}
function streamStop()
{
 _ns.seek(0);
 _ns.pause();
}
function streamRestart()
{
 if(_error == false)
 {
  bufferClip._visible = true;
  _ns.play(_vidURL);
 }
}
loader.scrub.onPress = function()
{
 if(_error == false)
 {
  clearInterval(statusID);
  _ns.pause();
  this.startDrag(false, 0, this._y, _loaderwidth, this._y);
 }
};
loader.scrub.onReleaseOutside = function()
{
 scrubit();
 this.stopDrag();
};
loader.scrub.onRelease = loader.scrub.onReleaseOutside;
_root.createEmptyMovieClip('vSound', _root.getNextHighestDepth());
vSound.attachAudio(_ns);
var so = new Sound(vSound);
so.setVolume(100);
mute.onRollOver = function()
{
 if (so.getVolume() == 100)
 {
  this.gotoAndStop('onOver');
 } else
 {
  this.gotoAndStop('muteOver');
 }
};
mute.onRollOut = function()
{
 if (so.getVolume() == 100)
 {
  this.gotoAndStop('on');
 } else
 {
  this.gotoAndStop('mute');
 }
};
mute.onRelease = function()
{
 if (so.getVolume() == 100)
 {
  so.setVolume(0);
  this.gotoAndStop('muteOver');
 } else
 {
  so.setVolume(100);
  this.gotoAndStop('onOver');
 }
};
//Changes the contextmenu and adds information
function contextMenu(obj)
{
 var theMenu:ContextMenu = new ContextMenu();
 theMenu.hideBuiltInItems();
 _root.menu = theMenu;
 var item1:ContextMenuItem = new ContextMenuItem("Datarate: " + Math.round(obj.audiodatarate + obj.videodatarate) + " kbps (" + Math.floor(obj.audiodatarate) + " kbps audio, " + Math.floor(obj.videodatarate) + " kbps video)", trace);
 theMenu.customItems[0] = item1;
 var item2:ContextMenuItem = new ContextMenuItem("Duration: " + secondsToTimestamp(obj.duration, obj.framerate) + " (HH:MM:SS.FF)", trace);
 theMenu.customItems[1] = item2;
 var item3:ContextMenuItem = new ContextMenuItem("Framerate: " + obj.framerate + " fps", trace);
 theMenu.customItems[2] = item3;
 var item4:ContextMenuItem = new ContextMenuItem("Resolution: " + obj.width + "x" + obj.height + " px", trace);
 theMenu.customItems[3] = item4;
}
//Sets theVideo due to VideoRatio
function setVideoStage(width, height)
{
 theVideo._width = 320;
 theVideo._height = 320 / width * height;
 theVideo._y = 8 + ((240 - theVideo._height) / 2)
}
//Converts seconds and framerate to a timestamp (String)
function secondsToTimestamp(seconds, framerate)
{
 var temp:Number = seconds;
 var timestamp:String = twoDigitFormat(Math.floor(temp / 3600)) + ":";
 temp = temp % 3600;
 timestamp += twoDigitFormat(Math.floor(temp / 60)) + ":";
 temp = temp % 60;
 timestamp += twoDigitFormat(Math.floor(temp)) + ".";
 temp = temp - Math.floor(temp);
 //Due to arithmetic errors Math.Floor is used for frames too
 timestamp += twoDigitFormat(Math.floor(temp * framerate));
 temp = null;
 return timestamp;
}

//Adds a leading zero to a number with one digit
function twoDigitFormat(number)
{
 if (String(number).length == 1)
 {
  return "0" + number;
 } else
 {
  return number;
 }
}
 
끝.
 
 
===================================================
 
 
 
// 위 flv 스킨의 view.skin.php는 아래와 같습니다.
 
 
제가 PHP 왕초자라서 아래의 flvplayer.swf와 링크시키는 구문에 문제가 있어보입니다만 ????  
 
 
<?
if (!defined("_GNUBOARD_")) exit; // 개별 접근 불가
?>
<script language="javascript">
{
 function popup_window(url, winname, opt)
    {
        window.open(url, winname, opt);
    }
}
</script>
 
<!-- 게시글 보기 시작 -->
<table width="<?=$width?>" align="center"  cellspacing='0' cellpadding='0'>
  <tr>
  <td><!-- 링크 버튼 -->
      <?
ob_start();
?>
      <?
$link_buttons = ob_get_contents();
ob_end_flush();
?>
  <table width="100%" border="0" cellpadding='0' cellspacing='0'>
<tr><td height=2 bgcolor=#B0ADF5></td></tr>
<tr>
  <td height=30 bgcolor="#F8F8F9">  <font color=#7A8FDB>담당자</font> : <?=$view[name]?><? if ($is_ip_view) { echo " ($ip)"; } ?>    
       <font color=#7A8FDB>날짜</font> : <?=substr($view[wr_datetime],2,14)?>    
       <font color=#7A8FDB>조회</font> : <?=$view[wr_hit]?>    
       <? if ($is_good) { ?><font color=#7A8FDB>추천</font> : <?=$view[wr_good]?>    <?}?>
       <? if ($is_nogood) { ?><font color=#7A8FDB>비추천</font> : <?=$view[wr_nogood]?>    <?}?></td>
</tr>
<tr><td height=1 bgcolor="#B0ADF5"></td></tr>
<? if ($trackback_url) { ?>
<tr>
  <td height=30><table width="100%" border="0" cellpadding='0' cellspacing='0' bordercolor="#FFFFFF">
    <tr>
      <td width="2" height="1" bgcolor="F8F8F9"></td>
      <td bgcolor="F8F8F9"></td>
      <td width="1" bgcolor="F8F8F9"></td>
      <td width="100" height="1" nowrap="nowrap" bgcolor="F8F8F9"></td>
      <td width="1" bgcolor="F8F8F9"></td>
      <td width="1" bgcolor="F8F8F9"></td>
      <td height="1" bgcolor="F8F8F9"></td>
      <td width="2" height="1" bgcolor="F8F8F9"></td>
    </tr>
    <tr>
      <td border="0" cellspacing='10' cellpadding='0'></td>
      <td width="130" rowspan="17"><div align="center">
   <table width="100%" height="100%" border="0" align="center" cellpadding='0' cellspacing='10'>
   <tr>
   <td width="100" height="100">
    <?
        // 파일 출력
            if ($view[file][0][view])
                echo $view[file][0][view];
               
           elseif ($write[wr_6]) { echo "<img src=http://image.aladdin.co.kr/cover/cover/$write[wr_6]_1.gif width=100 height=100>";  }
           else { echo"<img src='$board_skin_path/img/hn.gif' alt='이미지 없음' width='100' height='100' valign=absmiddle>"; }
        ?>  </td>
   </tr>
   </table>
      
      </div>        </td>
      <td bgcolor="#F8F8F9"></td>
      <td height="25" nowrap="nowrap"><div align="center"><strong>과   목</strong></div></td>
      <td bgcolor="F8F8F9"></td>
      <td></td>
      <td><span style="padding:5 0 5 0;"><strong>
         
        <?=$view[subject]?>
      </strong></span></td>
      <td></td>
    </tr>
 
    <tr>
      <td></td>
      <td bgcolor="#F8F8F9"></td>
      <td nowrap="nowrap" bgcolor="#F8F8F9"></td>
      <td bgcolor="F8F8F9"></td>
      <td bgcolor="#F8F8F9"></td>
      <td bgcolor="#F8F8F9"></td>
      <td></td>
    </tr>
    <tr>
      <td></td>
      <td bgcolor="#F8F8F9"></td>
      <td height="25" nowrap="nowrap"><div align="center"><strong>분   류</strong></div></td>
      <td bgcolor="F8F8F9"></td>
      <td></td>
      <td><span style="padding:5 0 5 0;"><strong> 
        <? if ($is_category) { echo ($category_name ? "$view[ca_name] > $view[wr_10] " : ""); } ?>
      </strong></span></td>
      <td></td>
    </tr>
   
    <tr>
      <td></td>
      <td bgcolor="#F8F8F9"></td>
      <td nowrap="nowrap" bgcolor="#F8F8F9"></td>
      <td bgcolor="F8F8F9"></td>
      <td bgcolor="#F8F8F9"></td>
      <td bgcolor="#F8F8F9"></td>
      <td></td>
    </tr>
    <tr>
      <td width="2"></td>
      <td bgcolor="#F8F8F9"></td>
      <td height="25" nowrap="nowrap"><div align="center"><strong>커리큐럼</strong></div></td>
      <td width="1" bgcolor="F8F8F9"></td>
      <td></td>
      <td>         <? if ($write[wr_1]) { ?> <a href="javascript:popup_window('/bbs/board.php?bo_table=curri&wr_id=<?=$write[wr_1]?>','winBoard','left=50, top=50, width=800, height=600, scrollbars=1')"><img src='<?=$board_skin_path?>/img/curiculum.gif' border='0'></a> <? } ?></td>
      <td width="2"></td>
    </tr>
    <tr>
      <td width="2" height="1"></td>
      <td bgcolor="#F8F8F9"></td>
      <td height="1" nowrap="nowrap" bgcolor="F8F8F9"></td>
      <td width="1" bgcolor="F8F8F9"></td>
      <td width="1" bgcolor="F8F8F9"></td>
      <td height="1" bgcolor="F8F8F9"></td>
      <td width="2" height="1"></td>
    </tr>
    <tr>
      <td width="2"></td>
      <td bgcolor="#F8F8F9"></td>
      <td height="25" nowrap="nowrap"><div align="center"><strong>담당강사</strong></div></td>
      <td width="1" bgcolor="F8F8F9"></td>
      <td></td>
      <td>         <?=$write[wr_2]?></td>
      <td width="2"></td>
    </tr>
    <tr>
      <td width="2" height="1"></td>
      <td bgcolor="#F8F8F9"></td>
      <td height="1" nowrap="nowrap" bgcolor="F8F8F9"></td>
      <td width="1" bgcolor="F8F8F9"></td>
      <td width="1" bgcolor="F8F8F9"></td>
      <td height="1" bgcolor="F8F8F9"></td>
      <td width="2" height="1"></td>
    </tr>
    <tr>
      <td width="2"></td>
      <td bgcolor="#F8F8F9"></td>
      <td height="25" nowrap="nowrap"><div align="center"><strong>강의시간</strong></div></td>
      <td width="1" bgcolor="F8F8F9"></td>
      <td></td>
      <td>         <?=$write[wr_3]?></td>
      <td width="2"></td>
    </tr>
    <tr>
      <td width="2" height="1"></td>
      <td bgcolor="#F8F8F9"></td>
      <td height="1" nowrap="nowrap" bgcolor="F8F8F9"></td>
      <td width="1" bgcolor="F8F8F9"></td>
      <td width="1" bgcolor="F8F8F9"></td>
      <td height="1" bgcolor="F8F8F9"></td>
      <td width="2" height="1"></td>
    </tr>
    <tr>
      <td width="2"></td>
      <td bgcolor="#F8F8F9"></td>
      <td height="25" nowrap="nowrap"><div align="center"><strong>강좌모드</strong></div></td>
      <td width="1" bgcolor="F8F8F9"></td>
      <td></td>
      <td>         <?=$write[wr_4]?></td>
      <td width="2"></td>
    </tr>
    <tr>
      <td width="2" height="1"></td>
      <td bgcolor="#F8F8F9"></td>
      <td height="1" nowrap="nowrap" bgcolor="F8F8F9"></td>
      <td width="1" bgcolor="F8F8F9"></td>
      <td width="1" bgcolor="F8F8F9"></td>
      <td height="1" bgcolor="F8F8F9"></td>
      <td width="2" height="1"></td>
    </tr>
    <tr>
      <td></td>
      <td bgcolor="#F8F8F9"></td>
      <td height="25" nowrap="nowrap"><div align="center"><strong>개강일</strong></div></td>
      <td bgcolor="F8F8F9"></td>
      <td></td>
      <td>         <?=$write[wr_5]?></td>
      <td></td>
    </tr>
 
    <tr>
      <td width="2" height="1"></td>
      <td bgcolor="#F8F8F9"></td>
      <td height="1" nowrap="nowrap" bgcolor="F8F8F9"></td>
      <td width="1" bgcolor="F8F8F9"></td>
      <td width="1" bgcolor="F8F8F9"></td>
      <td height="1" bgcolor="F8F8F9"></td>
      <td width="2" height="1"></td>
    </tr>
 
    <tr>
      <td></td>
      <td bgcolor="#F8F8F9"></td>
      <td height="25" nowrap="nowrap"><div align="center"><strong>수강신청</strong></div></td>
      <td bgcolor="F8F8F9"></td>
      <td></td>
      <td>  <? if ($write[wr_6]) { ?> <a href="javascript:popup_window('/bbs/write.php?bo_table=<?=$write[wr_6]?>','winBoard','left=50, top=50, width=800, height=600, scrollbars=1')"><img src='<?=$board_skin_path?>/img/apply.gif' border='0'></a> <? } ?>
   <!--<? if ($write[wr_6]) { ?> <a href="/bbs/write.php?bo_table=<?=$write[wr_6]?>"><img src='<?=$board_skin_path?>/img/apply.gif' border='0'></a> <? } ?>--></td>
   </tr>
    <tr>
      <td width="2" height="1"></td>
      <td bgcolor="#F8F8F9"></td>
      <td height="1" nowrap="nowrap" bgcolor="F8F8F9"></td>
      <td width="1" bgcolor="F8F8F9"></td>
      <td width="1" bgcolor="F8F8F9"></td>
      <td height="1" bgcolor="F8F8F9"></td>
      <td width="2" height="1"></td>
    </tr>
 
    <tr>
      <td width="2"></td>
      <td bgcolor="#F8F8F9"></td>
      <td height="25" nowrap="nowrap"><div align="center"><strong>수강료</strong></div></td>
      <td width="1" bgcolor="F8F8F9"></td>
      <td></td>
      <td> 
        <?=$write[wr_7]?></td>
      <td width="2"></td>
    </tr>
    <tr>
      <td width="2" height="1" bgcolor="F8F8F9"></td>
      <td bgcolor="F8F8F9"></td>
      <td bgcolor="F8F8F9"></td>
      <td height="1" nowrap="nowrap" bgcolor="F8F8F9"></td>
      <td width="1" bgcolor="F8F8F9"></td>
      <td width="1" bgcolor="F8F8F9"></td>
      <td height="1" bgcolor="F8F8F9"></td>
      <td width="2" height="1" bgcolor="F8F8F9"></td>
    </tr>
  </table>
    <table width="100%" border="0" cellspacing="0" bordercolor="#FFFFFF">
 <tr><td width="200" height=1 bgcolor=#B0ADF5>
     <td height=1 bgcolor=#B0ADF5> </td></tr>
      <tr>
        <td colspan="2">   <strong>■ 강좌개요 ■</strong>
          <table width="100%" border="0" cellspacing="10">
            <tr>
              <td> <?
 $content_view = explode(",,,", $view[content]);
 $content_a = $content_view[0];
 $content_b = $content_view[1];
?>
          <span class="ct lh">
<?=$content_a?>
          </span></td>
            </tr>
          </table>
          </td>
        </tr>
  
  
  
  <tr><td height=1 bgcolor=#B0ADF5>
      <td height=1 bgcolor=#B0ADF5> </td></tr>
      <tr>
        <td colspan="2">   <strong>■ 학습내용 ■</strong>
          <table width="100%" border="0" cellspacing="10">
            <tr>
              <td>
<div id='player'>
<object classid='clsid:D27CDB6E-AE6D-11cf-96B8-444553540000' codebase='http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=7,0,0,0' width='320' height='240' title='mba2000'>
          <param name='movie' value='flvplayer.swf?file=<?=$write[wr_2]?>'>
          <param name="quality" value="high">
          <embed src='flvplayer.swf?file=<?=$write[wr_2]?>' quality='high' pluginspage='http://www.macromedia.com/go/getflashplayer' type='application/x-shockwave-flash' width='320' height='240'></embed>
     </object>
</div>
 
 <?//=$content_b?>
          <?//=$view[content];?>
          <?//echo $view[rich_content]; // 과 같은 코드를 사용할 경우?>
          <!-- 테러 태그 방지용 -->
          </xml>
          </xmp>
          <a href=""></a><a href=''></a></span></td>
            </tr>
          </table>
          </td>
        </tr>
   </table>
   </td>
</tr>
<?}?>
<?
// 가변 파일
$cnt = 0;
for ($i=0; $i<count($view[file]); $i++)
{
    if ($view[file][$i][source] && !$view[file][$i][view])
    {
        $cnt++;
        echo "<tr><td height=22>  <img src='{$board_skin_path}/img/icon_file.gif' align=absmiddle> <a href='{$view[file][$i][href]}' title='{$view[file][$i][content]}'><strong>{$view[file][$i][source]}</strong> ({$view[file][$i][size]}), Down : {$view[file][$i][download]}, {$view[file][$i][datetime]}</a></td></tr>";
    }
}
// 링크
$cnt = 0;
for ($i=1; $i<=$g4[link_count]; $i++)
{
    if ($view[link][$i])
    {
        $cnt++;
        $link = cut_str($view[link][$i], 70);
        echo "<tr><td height=22>  <img src='{$board_skin_path}/img/icon_link.gif' align=absmiddle> <a href='{$view[link_href][$i]}' target=_blank><strong>{$link}</strong> ({$view[link_hit][$i]})</a></td></tr>";
    }
}
?>
<tr><td height=1 bgcolor="#B0ADF5"></td></tr>
<tr>
    <td height="50" style='word-break:break-all; padding:10px;'>
        <p>
  <!-- 테러 태그 방지용 -->
          </xml>
          </xmp>
          <a href=""></a><a href=''></a></p>
        <? if ($is_signature) { echo "<br>$signature<br><br>"; } // 서명 출력 ?></td>
</tr>
</table>
  <? if ($search_href) { echo "<a href=\"$search_href\"><img src='$board_skin_path/img/btn_search_list.gif' border='0' align='absmiddle'></a> "; } ?>
  <? echo "<a href=\"$list_href\"><img src='$board_skin_path/img/btn_list.gif' border='0' align='absmiddle'></a> "; ?>
  <? if ($write_href) { echo "<a href=\"$write_href\"><img src='$board_skin_path/img/btn_write.gif' border='0' align='absmiddle'></a> "; } ?>
  <? if ($reply_href) { echo "<a href=\"$reply_href\"><img src='$board_skin_path/img/btn_reply.gif' border='0' align='absmiddle'></a> "; } ?>
  <? if ($update_href) { echo "<a href=\"$update_href\"><img src='$board_skin_path/img/btn_update.gif' border='0' align='absmiddle'></a> "; } ?>
  <? if ($delete_href) { echo "<a href=\"$delete_href\"><img src='$board_skin_path/img/btn_delete.gif' border='0' align='absmiddle'></a> "; } ?>
  <? if ($good_href) { echo "<a href=\"$good_href\" target='hiddenframe'><img src='$board_skin_path/img/btn_good.gif' border='0' align='absmiddle'></a> "; } ?>
  <? if ($nogood_href) { echo "<a href=\"$nogood_href\" target='hiddenframe'><img src='$board_skin_path/img/btn_nogood.gif' border='0' align='absmiddle'></a> "; } ?>
  <? if ($scrap_href) { echo "<a href=\"javascript:;\" onclick=\"win_scrap('$scrap_href');\"><img src='$board_skin_path/img/btn_scrap.gif' border='0' align='absmiddle'></a> "; } ?>
  <? if ($copy_href) { echo "<a href=\"$copy_href\"><img src='$board_skin_path/img/btn_copy.gif' border='0' align='absmiddle'></a> "; } ?>
  <? if ($move_href) { echo "<a href=\"$move_href\"><img src='$board_skin_path/img/btn_move.gif' border='0' align='absmiddle'></a> "; } ?>
  <? if ($prev_href) { echo "<a href=\"$prev_href\" title=\"$prev_wr_subject\"><img src='$board_skin_path/img/btn_prev.gif' border='0' align='absmiddle'></a> "; } ?>
  <? if ($next_href) { echo "<a href=\"$next_href\" title=\"$next_wr_subject\"><img src='$board_skin_path/img/btn_next.gif' border='0' align='absmiddle'></a> "; } ?>
  <br>
   
  <?
include_once("./view_comment.php");
?>
   
  <?=$link_buttons?>
   
</td></tr></table><br>
<script language="JavaScript">
// HTML 로 넘어온 <img ... > 태그의 폭이 테이블폭보다 크다면 테이블폭을 적용한다.
function resize_image()
{
    var target = document.getElementsByName('target_resize_image[]');
    var image_width = parseInt('<?=$board[bo_image_width]?>');
    var image_height = 0;
    for(i=0; i<target.length; i++) {
        // 원래 사이즈를 저장해 놓는다
        target[i].tmp_width  = target[i].width;
        target[i].tmp_height = target[i].height;
        // 이미지 폭이 테이블 폭보다 크다면 테이블폭에 맞춘다
        if(target[i].width > image_width) {
            image_height = parseFloat(target[i].width / target[i].height)
            target[i].width = image_width;
            target[i].height = parseInt(image_width / image_height);
        }
    }
}
window.onload = resize_image;
</script>
<!-- 게시글 보기 끝 -->
 
 
 
  • 복사

댓글 전체

음.. 굳이 flv스킨을 만들 필요가 있는지요...
전 그냥...브레스님 스킨 약간 고쳐서 사용하고 있습니다.

http://joonim.com/board/bbs/board.php?bo_table=movie

flv로 하니까 무료 사이트 사용으로 상업적만 아니면 가능하더라구요.. mncast.com이라고..

암튼, 좋은 스킨 만드시면 공유 해 주세요 ^^
진아맘님께선 ActiveX clsid를 잘못 이해를 하고 계신듯 하군요.
http://joonim.com/board/bbs/board.php?bo_table=movie 에서 사용하고 계신"clsid:22D6F312-B0F6-11D0-94AB-0080C74C7E95" 는 MS사의 WMV. WMA, ASF ... 포멧만 로딩되고,
매크로미디어의 SWF FLV는 반드시 "clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" 를 사용해야 합니다.
특히 버전 8.0.0이상에서만 FLV가 잘 보이게 됩니다.
암튼 제가 스킨에서 몇 가지 실수를 했군요. 어느 정도 해결이 되어 두 가지로 테스트 하고 있습니다.

첫번쩨 테스트 : http://www.gobut.com/bbs/board.php?bo_table=flv&wr_id=1

-----------------------------------
<div id='player'>
<object classid='clsid:D27CDB6E-AE6D-11cf-96B8-444553540000' codebase='http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=8,0,22,0' width='640' height='520' title='mba2000'>
          <param name='movie' value='<?=$board_skin_path?>/flvplayer.swf?file=<?=$view[wr_4]?>'>
          <param name="quality" value="high">
          <embed src='<?=$board_skin_path?>/flvplayer.swf?file=<?=$view[wr_4]?>' quality='high' pluginspage='http://www.macromedia.com/go/getflashplayer' type='application/x-shockwave-flash' width='640' height='520'></embed>
</object>
</div>
==================================

둘째테스트 : http://www.gobut.com/bbs/board.php?bo_table=stream&wr_id=1
-------------
<script language='javascript' src='<?=$board_skin_path?>/mEmbed.js'></script>
<script language='javascript' src='<?=$board_skin_path?>/runEmbed.js'></script>
<script language='javascript' src='<?=$board_skin_path?>/RunActiveContent.js'></script>
<script>mEmbed('src=<?=$board_skin_path?>/flvplayer_01.swf?file=<?=$write[wr_4]?>','width=645','height=530', 'wmode=Transparent', 'bgcolor=#ffffff');</script>
------------------

좀 더 시간을 갖고 삽질 더 한 다음에 공개 하겠습니다. 더 좋은 아이디어 있으시면 조언 많이 주세요 ^^
안녕하세여~ 웹파크님.. 잘못 이해하는게 아니라 잘 모르는겁니다. ^^ ㅎㅎ
암튼, 좋은 팁 가르쳐주셔서 감사드리고요,
웹파크님 말씀 듣고, 제 소스도 수정했답니다... ^^

그러지 않아도 play가 안된다고 하는 분이 계시더라구요..

원래 코딩은 브레스님의 wmv 동영상 보드였는데, 제가 임의로 flv쓰게끔 바꾼거랍니다~

부디, 삽질 잘 하셔서 좋은 스킨 만드시길 바랄께요. ^^
만드시고 꼭 공개하시는거 잊지 말아주세요~~

좋은 하루 되십시오!
//진아맘님 이런 코딩은 안됩니다^^
 <object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="100%" height="100%" id="MediaPlayer1">
          <param name="Filename" value="http://dory.mncast.com/mnc_movie_b.swf?movieID=845|N2006424162133">
          <param name="AutoSize" value="1">
          <param name="AutoStart" value="true">
          <param name="AutoRewind" value="0">
          <param name="ClickToPlay" value="false">
          <param name="Enabled" value="0">
          <param name="EnableContextdir" value="false">
          <param name="EnableTracker" value="0">
          <param name="Mute" value="0">
          <param name="ShowCaptioning" value="0">
          <param name="ShowControls" value="0">
          <param name="ShowAudioControls" value="false">
          <param name="ShowDisplay" value="false">
          <param name="ShowTracker" value="false">
          <param name="VideoBorderWidth" value="0">
          <param name="ShowStatusBar" value="0">
        </object>

=========> 이렇게 바꿔보세요.

<object classid='clsid:D27CDB6E-AE6D-11cf-96B8-444553540000' codebase='http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=8,0,22,0' width='100%' height='100%' title='mba2000'>
          <param name='movie' value="<?=$write["wr_link1"]?>">
          <param name="quality" value="high">
          <embed src="<?=$write["wr_link1"]?>" quality='high' pluginspage='http://www.macromedia.com/go/getflashplayer' type='application/x-shockwave-flash' width='100%' height='100%'></embed>
아르헨티나 마약 먹은 심판 때문에 열받아가며 테스트 했는데 ...
일단 불여우에서도 이상 없습니다. Bless님 동영상 스킨처럼 하려면 사이즈조절과 콘트롤 버튼을 이미지로 별도로 빼야 하기 때문에 간단한 작업이 아니네요. 시간을 갖고(?) 언제 한번 도전하렵니다.
© SIRSOFT
현재 페이지 제일 처음으로