红心电台

前两天写了篇Audio标签的文章,想要更深入学习一下,遂决定写一个网页版音乐播放器试试(其实有更深部的动机的,不过我不告诉你们,哼哼!)。在整个网页的编写过程中,我学习到了很多的东西,感觉对jQuery又有了更新的认识。同时新接触了jQuery UI这个非常可靠的工具。不过说到底也还是新手,代码写的很脏,也没想到重构什么的,功能实现出来就好了,至于美观什么的,哈哈,你是在开玩笑么!

放上本篇文章主角:红心电台 - http://imnerd.org/lab/player

简单介绍:红心电台是一个利用HTML5制作的能够存储播放列表的在线音乐播放器。是的,没错,虽然是叫做红心电台,但是基本上也就只是一个能存播放列表的播放器而已。另外,本网页是用HTML5写的,然后由于播放的音乐基本是MP3格式的,所以只支持Webkit系的浏览器(Chrome为首)和IE9+以上的浏览器,对Firefox和Opera的用户感到抱歉了,OGG的音乐库毕竟还是挺小众的。具体浏览器支持可以看红心电台的HELP。

使用说明:

  • 1、左上角有搜索框,用户可自行添加歌曲到播放列表中。
  • 2、默认播放列表的歌曲在用户添加过歌曲后会自行清除(需要刷新页面),用户不必手动清除。
  • 3、默认支持快捷键,左右方向键为上一首下一首,空格键为暂停,Delete键为删除当前播放曲目。

如果对红心电台有什么意见或者是建议,又或者是发现了什么问题,可以随时与我联系(联系方式见关于页面),当然你也可以在本文留言,我都是可以看的到的。

利用API制作相册展页[JQuery版]

之前因为图片大,数据解析多次的原因,我的API相册展示页访问起来表示鸭梨巨大,所以我就央求了老四同学帮我写了这么一个JQ版本的。【没办法,我是JS盲o(╯□╰)o】使用之后访问起来果然什么鸭梨都木有啊!在此非常感谢老四同学在百忙之中帮我做了这么个小东西。

废话不多说,先放上相册预览地址:预览地址一 | 预览地址二

继续贴上代码【你也可以在这里找到这段代码】

 

    <title></title>         

            <div id="images" style="background-position: 0px 0px;"> 
                    <a id="back">BACK</a>
            </div>

            
    <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script>
    <script type="text/javascript">

var albumURL = 'http://album.imnerd.org/';

$(function(){

    $.getJSON(albumURL + 'api.php?method=get.gallery.name&callback=?', function(data){
            $.each(data, function(i,item){

                    $.getJSON(albumURL + 'api.php?method=get.gallery.info&name=' + item + '&callback=?', function(data){
                                            $('<a class="album"/>').attr('href', 'javascript:openAlbum("' + data.name + '")').attr('title', data.description)
                                                    .append('<img/>').children().eq(0)
                                                    //.attr("src", albumURL + data.path + data.previewimage)
                                                    .attr("src", albumURL + data.path + 'tn_' + data.previewimage.substr(0,data.previewimage.length-3) + 'jpg')
                                                    //.css('width', data.maxThumbWidth)
                                                    .parent()
                                                    .append('<span/>').children().eq(1).addClass('img_title').html(data.title).parent()
                                                    .append('<span/>').children().eq(2).addClass('img_title').html('共 ' + data.fileCount + ' 张').parent()
                                                    .append('<span/>').children().eq(3).addClass('img_date').html(getLocalTime(data.mTime)).parent()
                                                    .appendTo('#images');
                    });
            });
    });

    $('#back').click(function(){
            //$('#images').children('a:visible').hide();
            $('.photo').remove();
            //$('#images').children('a:hidden').fadeIn();
            $('.album').show();
            $(this).hide();
    });

});

    function openAlbum(albumName) {
            //$('#images').children('a').fadeOut();
            $('.album').hide();
            $('#back').show();
            $.getJSON(albumURL + 'api.php?method=get.photos&name=' + albumName + '&callback=?', function(data){
                    $.each(data, function(i,item){
                            $("<a class='photo'/>").attr('href', item.url).attr('title', item.description)
                                    .append('<img/>').children().attr("src", item.thumbnail).parent()
                                    .append('<span/>').children().eq(1).addClass('img_title').html(item.title).parent()
                                    .appendTo('#images');
                    });
            });
    }
    
    function getLocalTime(nS) {
            return new Date(parseInt(nS) * 1000).toLocaleString();
    }
    </script>
友情提示:本代码只是一个实例代码,请大家根据自己的需要做好相关的修改。