57、基本Real播放器

57、基本Real播放器

脚本说明:

把如下代码加入<body>区域中

<script>

//---------这是区分播放器的音乐类型,你可以填加修改------//

var RS = new Array("rm","ram","mp3","ra","rt","rp","rmm","png","m3u","mp2","mpa");

//-----------播放器状态-------------//

var Rstate = new Array("停止","连接","缓冲","播放","暂停");

 

var player_doing = false;

 

function choose_player(sound_path)

{

 sound_path = sound_path.split(".");

 

 var sound_type = sound_path[sound_path.length-1].toLowerCase();

 

 for(i=0;i<RS.length;i++)

 {

  if(sound_type==RS[i])

   return "R"

 }

 

 return "U";

}

function Do_play()

{

 var the_player  = document.getElementById("player");

 the_player.DoPlay();

}

function Do_pause()

{

 var the_player  = document.getElementById("player");

 the_player.DoPause();

}

function Do_stop()

{

 var the_player  = document.getElementById("player");

 the_player.DoStop();

}

function Set_position(num)

{

 var the_player  = document.getElementById("player");

 the_player.SetPosition(num);

}

function Get_position()

{

 var the_player  = document.getElementById("player");

 return the_player.GetPosition();

}

function Get_length()

{

 var the_player  = document.getElementById("player");

 return the_player.GetLength();

}

function  Set_volume(num)

{

 var the_player  = document.getElementById("player");

 the_player.SetVolume(num);

}

function Show_time(num)

{

 var time_minute = Math.floor( num / 60000 );

 var time_second = Math.floor( ( num - time_minute*60000 ) / 1000 );

 

 if( time_minute < 10 )

  time_minute = "0" + time_minute;

 if( time_second < 10 )

  time_second = "0" + time_second;

 

 return (time_minute + ":" +time_second); 

}

function Get_state()

{

 var the_player  = document.getElementById("player");

 return the_player.GetPlayState();

}

 

function player_play()

{

 var just_type = choose_player(document.getElementById("sound_path").value);

 var the_player  = document.getElementById("player");

 

 var the_state   = Get_state();

 

 

 if(the_state==1||the_state==2||the_state==3)

 {

  return;

 }

 

 if(the_state==4)

 {

  Do_play();

 }

  

 if(the_state==0)

 {

  if(just_type=="R")

  {

   Do_stop();

   the_player.SetSource(document.getElementById("sound_path").value);  

   Do_play();

  

   if(player_doing)

   {

    clearInterval(player_doing)

   }

 

   player_doing = setInterval("Set_all()",500);  

  }

 }

}

function Set_all()

{

 var the_player  = document.getElementById("player");

 

 document.getElementById("position_box").value = Show_time(Get_position());

 document.getElementById("length_box").value   = Show_time(Get_length());

 

 document.getElementById("state_box").value    = Rstate[Get_state()];

 

 var the_max = (document.getElementById("position_button_box").offsetWidth - document.getElementById("position_button").offsetWidth);

 

 document.getElementById("position_button").style.pixelLeft = Math.round(the_max*Get_position()/Get_length());

 

 if(Get_state()==0)

 {

  clearInterval(player_doing);

 }

}

function Go_direction(num)

{

 var the_player  = document.getElementById("player");

 

 var the_state   = Get_state();

 

 if(the_state==3)

 {

  var the_direction = num*1000;

 

  var judger = (Get_position() + the_direction)

 

  if(judger>=0&&judger<=Get_length())

  {

    Set_position(judger); 

  }

 }

 

}

 

var Ox,Nx;

var move_obj_can_move = false;

var move_obj = false;

function start_move()

{

 move_obj_can_move = true;

 

 move_obj = event.srcElement.id;

 

 document.getElementById(move_obj).setCapture();

  Ox = event.clientX;

 

}

function document.onmouseup()

{

 if(!move_obj)

  return;

 

 document.getElementById(move_obj).releaseCapture();

 

 move_obj_can_move = false;

 

 move_obj = false;

}

function document.onmousemove()

{

 if(!document.getElementById(move_obj))

 {

  return;

 }

 

 if(move_obj=="position_button"&&Get_state()!=3)

 {

  return;

 }

 

 Nx = event.clientX;

 

 var judger = document.getElementById(move_obj).style.pixelLeft + Nx - Ox;

 

 

 var max = document.getElementById(move_obj+"_box").offsetWidth - document.getElementById(move_obj).offsetWidth;

 

 if(!move_obj_can_move||!move_obj||judger>max||judger<0)

 {

  return;

 }

 

  document.getElementById(move_obj).style.pixelLeft += Nx - Ox;

 

  eval(move_obj+"_event("+document.getElementById(move_obj).style.pixelLeft+","+max+")");

 

 Ox = Nx;

 

}

function volume_button_event(s_num,b_num)

{

 var judger = Math.round(100*s_num/b_num)

 

 if(judger>=0&&judger<=100)

 {

  Set_volume(judger)

 }

}

function position_button_event(s_num,b_num)

{

 var judger = Math.round(Get_length()*s_num/b_num);

 

 if(judger>=0||judger<=Get_length())

 {

  Set_position(judger)

 }

}

</script>

<table border="0" width="100%" cellspacing="0" cellpadding="0">

  <tr>

    <td width="37%">

<embed src="///d:/My%20Documents/My%20Webs/ling.mp3" type="audio/x-pn-realaudio-plugin" id="player" controls="ImageWindow,ControlPanel" width="273" height="183" >

    </td>

   <td width="63%" valign="top">

        <input type="button" value="播放" onclick="player_play()">

        <input type="button" value="暂停" onclick="Do_pause()">

        <input type="button" value="停止" onclick="Do_stop()">  

        <input type="button" value="<<<" onmousedown="Go_direction(-1)">  

        <input type="button" value=">>>" onmousedown="Go_direction(1)"> 

        <p> <input type="file" id="sound_path" style="width: 163; height: 23" id="state_box">

        STATE<input type="text" value="" size="10" id="state_box">      

        </p>

        <p>

        POSITION: <input type="text" value="" size="10" id="position_box">  LENGTH: <input type="text" value="" size="11" id="length_box">

        </p>

       

        <div align="left">

          <table border="0" width="67%" cellspacing="0" cellpadding="0">

            <tr>

              <td id="volume_button_box" width="100%" bgcolor="#C0C0C0">

          <input id="volume_button" type="button" value="音量" style="position: relative; left:100; height: 18; width: 32" onmousedown="start_move()">

         </td>

            </tr>

          </table>

        </div>

  <p>

        <div align="left">

          <table border="0" width="67%" cellspacing="0" cellpadding="0">

            <tr>

              <td id="position_button_box" width="100%" bgcolor="#C0C0C0">

          <input id="position_button" type="button" value="NOW" style="position: relative; left:0; height: 18; width: 32" onmousedown="start_move()">

         </td>

            </tr>

          </table>

        </div>

       

    </td>

  </tr>

</table>

 

Write a comment

Comments: 0