技术开发 频道

使用jQuery插件设计在线音乐播放器

  三、读取数据库中的曲目

  接下来,我们就可以从数据库中读取要播放的歌曲了,本文将采用ezSQL的PHP开源库去连接数据库,当然你也可以用传统的MYSQL连接方法。ezSQL的使用方法教程见这篇文章(http://www.catswhocode.com/blog/php-fast-and-easy-sql-queries-using-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去调用这个PHP,所以注意语句:

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

   主要的目的是防止用户在浏览器地址栏中只是输入比如http://www.yousite.com/getsong.php就能获得歌曲的URL地址,只允许是通过AJAX发出的请求才予以接受。

  四、最终实现完善代码

  最后,我们可以修改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方法中,发起了一个ajax请求,请求getsong.php, 随机地获得一首播放的歌曲,然后对返回的数据重新用split方法分割“|”符号,其中得出的字符串数组string[0]即为mp3歌曲的URL地址,stringp[1]为歌手的名称,这里通过

  $('#artist').html(string[1])显示出来, $('#songname').html(string[2])则显示出歌的名称。swfPath指定该播放器的FLASH所在的目录为js目录,当然你可以自己定义路径,supplied指出只支持MP3格式。

  运行后,可以看到如下播放器的效果:

读取数据库中的曲目

  代码下载地址为:http://www.catswhocode.com/blog/wp-content/uploads/2011/05/cwc-radio-player.zip

1
相关文章