成人精品一区二区三区中文字幕-成人精品一区二区三区-成人精品一级毛片-成人精品亚洲-日本在线视频一区二区-日本在线视频免费

導(dǎo)航首頁 ? 技術(shù)教程 ? 利用jQuery設(shè)計一個簡單的web音樂播放器的實例分享
全站頭部文字 我要出現(xiàn)在這里
利用jQuery設(shè)計一個簡單的web音樂播放器的實例分享 664 2024-03-10   

一、準備數(shù)據(jù)庫
  首先,我們設(shè)計MYSQL數(shù)據(jù)庫如下:

CREATE TABLE `songs` (
 `song_id` int(11) NOT NULL AUTO_INCREMENT,
 `url` varchar(500) NOT NULL,
 `artist` varchar(250) NOT NULL,
 `title` varchar(250) NOT NULL,
 PRIMARY KEY (`song_id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=2 ;

  這里,url字段表示是mp3音樂的存放地址,artist是歌曲的演唱者,title是歌曲的名稱。我們再加入一些樣例數(shù)據(jù),如下:

INSERT INTO `songs` (`song_id`, `url`, `artist`, `title`) VALUES ('', 'http://mysongs.com/songurl.mp3', 'Artist name', 'Song name');
INSERT INTO `songs` (`song_id`, `url`, `artist`, `title`) VALUES ('', 'http://mysongs.com/anothersongurl.mp3', 'Another artist', 'Another song');
INSERT INTO `songs` (`song_id`, `url`, `artist`, `title`) VALUES ('', 'http://mysongs.com/onemoresongurl.mp3', 'One more artist', 'One more song');

二、設(shè)計HTML頁面
  在完成數(shù)據(jù)庫的設(shè)計后,我們就可以開始設(shè)計HTML頁面了。這里我們首先要下載jQuery的一個音樂播放插件jPlayer(http://jplayer.org/)。把下載下來的包解壓縮后,把js和skin兩個文件夾的內(nèi)容放到你的應(yīng)用的根目錄下,它們是要用到的javascript文件和CSS樣式應(yīng)用文件。現(xiàn)在可以開始設(shè)計HTML頁了,把文件命名為demo.html,代碼如下:

<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Transitional//EN' 'http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd'>
<html xmlns='http://www.w3.org/1999/xhtml' lang='en' xml:lang='en'>
<head>
  <title>Online radio using jQuery</title>
  <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />

  <link  rel="stylesheet" type="text/css" />

  <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4/jquery.min.js"></script>
  <script type="text/javascript" src="http://www.gimoo.net/t/1903/js/jquery.jplayer.min.js"></script>
</head>

<body>
  <div id="jquery_jplayer_1" class="jp-jplayer"></div>
    <div class="jp-audio">
      <div class="jp-type-single">
        <div id="jp_interface_1" class="jp-interface">
          <ul class="jp-controls">
            <li><a  class="jp-play" tabindex="1">play</a></li>
            <li><a  class="jp-pause" tabindex="1">pause</a></li>
            <li><a  class="jp-stop" tabindex="1">stop</a></li>
            <li><a  class="jp-mute" tabindex="1">mute</a></li>
            <li><a  class="jp-unmute" tabindex="1">unmute</a></li>
          </ul>

          <div class="jp-progress">
            <div class="jp-seek-bar">
              <div class="jp-play-bar"></div>
            </div>
          </div>

          <div class="jp-volume-bar">
            <div class="jp-volume-bar-value"></div>
          </div>

          <div class="jp-current-time"></div>
          <div class="jp-duration"></div>
        </div>

        <div id="jp_playlist_1" class="jp-playlist">
          <ul>
            <li><strong id="artist">Artist</strong> - <span id="songname">Song name</span></li>
          </ul>
        </div>
      </div>
    </div>
  </div>
</body>

</html>

  以上代碼其實很簡單,只是引入了jQuery和jPlayer插件的必須要的文件和樣式,然后設(shè)置好播放器的外觀,這里都是通過DIV去預(yù)先定位指定所在的層,比如播放進度條,播放的按鈕(開始/暫停),聲音的控制大小等。

三、讀取數(shù)據(jù)庫中的曲目
  接下來,我們就可以從數(shù)據(jù)庫中讀取要播放的歌曲了,本文將采用ezSQL的PHP開源庫去連接數(shù)據(jù)庫,當(dāng)然你也可以用傳統(tǒng)的MYSQL連接方法。ezSQL的具體用法我們就不再過多介紹了,這里使用其實很簡單,把ez_sql_core.php和ez_sql_mysql.php兩個文件放到項目的根目錄下即可,我們編寫php文件如下,命名為getsong.php,代碼如下:

<?php

if(!empty($_SERVER['HTTP_X_REQUESTED_WITH']) && strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) == 'xmlhttprequest'){ 

  include_once "ez_sql_core.php";
  include_once "ez_sql_mysql.php";
  $db = new ezSQL_mysql('db_user','db_password','db_name','db_host'); 

  $song = $db->get_row("SELECT * FROM songs ORDER BY RAND() LIMIT 1");

  $artist = $song->artist;
  $songname = $song->title;
  $url = $song->url;
  $separator = '|';
  echo $url.$separator.$artist.$separator.$songname;
} 

?>

  這里,用rand()隨機在MYSQL中取出一條記錄(曲目),然后分別用變量保存其歌曲的名稱,歌手名和地址,將它們用符號“|”連接起來。而因為我們要使用ajax去調(diào)用這個PHP,所以注意語句:
if(!empty($_SERVER['HTTP_X_REQUESTED_WITH'])&& strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) == 'xmlhttprequest')
  主要的目的是防止用戶在瀏覽器地址欄中只是輸入比如http://www.yousite.com/getsong.php就能獲得歌曲的URL地址,只允許是通過AJAX發(fā)出的請求才予以接受。
四、最終實現(xiàn)完善代碼
  最后,我們可以修改jPlayer的代碼,讓我們的播放器運行起來,修改demo.html代碼如下:

  <script type="text/javascript">
//<![CDATA[

$(document).ready(function(){
  $("#jquery_jplayer_1").jPlayer({
    ready: function () {
      var data = $.ajax({
       url: "getsong.php",
       async: false
       }).responseText;

      var string = data.split('|');
      $(this).jPlayer("setMedia", {
        mp3: string[0]
      }).jPlayer("play");

      $('#artist').html(string[1]);
      $('#songname').html(string[2]);
    },
    ended: function (event) {
      var data = $.ajax({
       url: "getsong.php",
       async: false
       }).responseText;

      var string = data.split('|');
      $(this).jPlayer("setMedia", {
        mp3: string[0]
      }).jPlayer("play");

      $('#artist').html(string[1]);
      $('#songname').html(string[2]);
    },
    swfPath: "js",
    supplied: "mp3"
  });
});
//]]>
</script>

  可以看到,在jPlayer插件的ready方法中,發(fā)起了一個ajax請求,請求getsong.php, 隨機地獲得一首播放的歌曲,然后對返回的數(shù)據(jù)重新用split方法分割“|”符號,其中得出的字符串?dāng)?shù)組string[0]即為mp3歌曲的URL地址,stringp[1]為歌手的名稱,這里通過
  $('#artist').html(string[1])顯示出來, $('#songname').html(string[2])則顯示出歌的名稱。swfPath指定該播放器的FLASH所在的目錄為js目錄,當(dāng)然你可以自己定義路徑,supplied指出只支持MP3格式。
  運行后,可以看到如下播放器的效果:

查看圖片



主站蜘蛛池模板: 少爷和我短剧| 房事性生活| 菠萝菠萝蜜视频在线免费观看| 欲望之屋2电视剧免费观看完整版高清| angela white| 王少华| 沈敏| 黑帆第三季电视剧完整免费观看高清 | 毕福剑说的那句话| 李泽宇| 供货合同| 秀人网周妍希| 插树岭演员表| 服务群众方面整改成效| paigeturnah大白臀| 严正花电影| 暗夜与黎明电视连续剧| 尺子1:1原图| 美女网站视频免费| 杨幂的视频| 电视剧一帘幽梦| 扭曲的欲望| 地狱究竟有几层电影| 罪孽天使| 荒岛爱情免费完整版在线观看高清| 质量教育培训的首要内容是() (单选题)| 热血街区| 探究事物的本质的读后感想| 清纯女被强行开了处视频| 六年级下册语文第15课课堂笔记| 以家人之名小说原著| 楼下的房客 电影| 我在等你泰剧剧情介绍| 儿童手绘中国地图| 恶魔女忍者| 二年级上册数学竖式计算题 | 少女频道电影在线观看中文版| 好男人电视剧| 第一财经直播电视直播今日股市| 电影《盲井》| 金首露|

!!!站長長期在線接!!!

網(wǎng)站、小程序:定制開發(fā)/二次開發(fā)/仿制開發(fā)等

各種疑難雜癥解決/定制接口/定制采集等

站長微信:lxwl520520

站長QQ:1737366103