Some print.
Some print.

仿PSP的FLASH歌词同步波形播放器.

By19.Published on2008-07-6.

仿PSP的AS3同步歌词加载显示的FLASH波形播放器源文…

所谓的仿PSP的音乐播放器只是根据PSP上自带的那个波形当作背景这样,这是我偶尔在网络找到的一个很帮的波形效果(http://www.anttikupila.com/),便加在以前的播放器中(as3-lrc-mp3-wave)。点击屏幕切换波形,上面显示歌词,下面显示歌曲,去掉了音量控制和播放时间选择,感觉加上这些会很乱。

推荐另外一个一条可以置顶在页面上方的LRC LINE~:http://www.ll19.com/index.php/lrc-19line/

说明:

1.最好直接把LRC的扩展名改成XML。

2.中文歌词存成UTF8格式。

3.播放器上鼠标右键也可以控制音乐的播放,比如前一首、后一首、停止等(改变波谱暂时未实现)。

4.右下是一些控制按钮,分别是关开音乐这些,右上的箭头可以拖拉音乐列表来选择。

5.XML配置 auto=”":random FLASH加载后便随机播放,yes FLASH加载后播放第一首歌曲,其余字符均为不直接播放。

mp3节点中:path=”http://www.ll19.com/up/…/kida.mp3″ MP3的地址。
title=”kidA.” mp3的标题。lrc=”http://www.ll19.com/up/GLLL-Lrc-Wave/lrc/kida.xml” LRC的地址。 type=”en” LRC的类型,因为英文我喜欢小字体,换了中文的话歌词字体会过小。所以这里要注明类型来改变字体,全是英文就写en,中文歌词写cn。font=”" 可以来写简单的HTML来控制歌词的字体颜色等,比如这里可以写 size=’10′ color=’#FF0000′ face=’Arial’ 既font中间的部分,不想控制就空着。

-= 点这里下载 =-

{ Tags: , , , , }

(查看之前文章)    »    |    (查看之后文章)    »    |


这篇文章发布于 2008年07月6日,星期日,7:01 上午,归类于 Diary。 您可以跟踪这篇文章的评论通过 RSS 2.0 feed。 您可以留下评论,或者从您的站点trackback



39 Responses to “ 仿PSP的FLASH歌词同步波形播放器. ”

  1. 阿邙 说: ( Has commented 1 times in LL19.com )

    希望能找一个 调用时形如 http://xxx.com/player.swf?mp3=MP3地址&lrc=歌词地址

    这样的播放器 能方便插入的

  2. 峄峰 说: ( Has commented 1 times in LL19.com )

    19你好,看到你的播放器真有惊艳的感觉;-)我下载来看了看却不会用……请问那个播放器 GLLL-FLV.swf 是还需要根据压缩包里的源码自己编译吗?我是代码小白,囧……

    • 19. 说: ( Admin commented )

      blocks\…\flash下的SWF文件是编译好的,直接用就行了,你只要按照XML\glll-lrc-list.xml的格式编辑播放列表之后按照文章中写的那样playlist=传入这个XML地址就行了~

      这个播放器我老早写的了,我感觉写的很烂,最新写了一个你可以看看http://www.ll19.com/19_wavecircle.html

      @峄峰:

  3. 匿名 说: ( Stranger commented in LL19.com )

    想实现一个影片剪辑随播放器中的声音播放,也就是声音停止mc就不播放,当有声音时就自动播放。当播放下一首时(指的是有声音状态,并不是加载时)又可以从mc头开始播放。只加载但无声时mc不播放。

    • 19. 说: ( Admin commented )

      那就是声音播放的时候就播放影片,停止的时候就停止影片不就行了 – -

  4. 匿名 说: ( Stranger commented in LL19.com )

    楼主您好,能帮一忙。帮我把下面的代吗修必成找不到歌曲地址,自动跳到下一道播放。先谢谢了
    [code]function loadData(success) {
    if (success) {
    showDisplay = this.firstChild.attributes.showDisplay;
    if (showDisplay == "yes") {
    top.easeY(toppos);
    topup = false;
    display_btn._rotation = display_btn._rotation + 180;
    }
    showPlaylist = this.firstChild.attributes.showPlaylist;
    if (showPlaylist == "yes") {
    bot.easeY(botpos);
    botup = false;
    list_btn._rotation = list_btn._rotation + 180;
    }
    aPath = new Array();
    songTitel = new Array();
    audioTracks = new Array();
    audioTracks.shuffle();
    audioTracks = this.firstChild.childNodes;
    song_total = audioTracks.length;
    var _local2 = 0;
    while (_local2 0) {
    top.equalizer._visible = 1;
    MySound.start(pausePos, 0);
    pausePos = 0;
    } else {
    MySound = new Sound();
    MySound.setVolume(volume);
    MySound.loadSound(AudioPath, true);
    MySound.onSoundComplete = function () {
    top.equalizer._visible = 0;
    if (autoStart == "random") {
    current_song = random(song_total) + 1;
    } else {
    ((current_song == song_total) ? ((current_song = 1)) : (current_song++));
    }
    playSong();
    };
    top.track_load.onEnterFrame = function () {
    total = this._parent._parent.MySound.getBytesTotal();
    geladen = this._parent._parent.MySound.getBytesLoaded();
    if (geladen != total) {
    this._parent.load_display = Math.round((geladen * 100) / total) + "% Loaded";
    this._xscale = Math.round((geladen * 100) / total);
    } else {
    this._xscale = 100;
    top.equalizer._visible = 1;
    delete this.onEnterFrame;
    delete this._parent.load_display;
    }
    };
    }
    play_btn._visible = 0;
    pause_btn._visible = 1;
    }
    function checkDigits(toCheck) {
    return(((toCheck 5) {
    top.title.txt.text = (songTitel[current_song - 1] + " 正在播放: ") + songTitel[current_song - 1];
    ((((top.title._x + (top.title._width / 2)) + 4) this._height)) {
    ymin = (this._y + this._height) - this._parent.playlist._height;
    ymax = this._y + 3;
    conv = ((this._ymouse - 15) * 1.3) / this._height;
    ((conv > 1) ? ((conv = 1)) : null);
    ((conv max) ? ((perc = max)) : null);
    ((perc 0.95) ? ((perc = 1)) : null);
    ((perc < 0.05) ? ((perc = 0)) : null);
    this._width = vol_back._width * perc;
    volume = Math.round(perc * 100);
    MySound.setVolume(volume);
    top.equalizer._yscale = volume;
    };
    };
    vol_back.onRelease = (vol_back.onReleaseOutside = function () {
    delete vol_front.onEnterFrame;
    });
    vol_front.setMask(vol_mask);
    top.equalizer.setMask(top.eq_mask);
    top.equalizer.onEnterFrame = function () {
    i++;
    this.createEmptyMovieClip("graph" + i, i);
    with (this["graph" + i]) {
    _x = 0;
    _y = 0;
    beginFill(6710886, 50);
    moveTo(0, 0);
    j = 0;
    while (j = 3) ? ((i = 0)) : null);
    };
    top.title.setMask(top.title_mask);
    setInterval(scrollTitle, 40);
    MovieClip.prototype.easeY = function (t) {
    this.onEnterFrame = function () {
    this._y = int(t - ((t - this._y) / 1.5));
    if ((this._y > (t - 1)) && (this._y < (t + 1))) {
    delete this.onEnterFrame;
    }
    };
    };
    var my_cmi = new ContextMenu();
    my_cmi.hideBuiltInItems();
    var start_cmi = new ContextMenuItem("视听更多舞曲..");
    var start_cmi_1 = new ContextMenuItem("播放/暂停");
    var start_cmi_3 = new ContextMenuItem("上一首");
    var start_cmi_4 = new ContextMenuItem("下一首");
    var start_cmi_5 = new ContextMenuItem("刷新列表");
    start_cmi.onSelect = function (obj, item) {
    copy.onPress();
    };
    var tto = true;
    start_cmi_1.onSelect = function (obj, item) {
    if (tto) {
    pause_btn.onRelease();
    tto = !tto;
    } else {
    play_btn.onRelease();
    tto = !tto;
    }
    };
    start_cmi_3.onSelect = function (obj, item) {
    prev_btn.onRelease();
    };
    start_cmi_4.onSelect = function (obj, item) {
    next_btn.onRelease();
    };
    start_cmi_5.onSelect = function (obj, item) {
    trace("You chose: " + item.caption);
    };
    my_cmi.customItems.push(start_cmi);
    my_cmi.customItems.push(start_cmi_1);
    my_cmi.customItems.push(start_cmi_3);
    my_cmi.customItems.push(start_cmi_4);
    my_cmi.customItems.push(start_cmi_5);
    this.menu = my_cmi;

    [/code]

    • 19. 说: ( Admin commented )

      你给我的这段代码乱不说还有语法错误~而且AS2的东西我都好久不看了。

      也没有playSong()这个函数,刚翻了下以前AS2的文档,这么加:

      1
      2
      3
      4
      5
      6
      7
      
      MySound.onLoad = function(success:Boolean) {
      	if (!success) {
       
      		//复制MySound.onSoundComplete = function () { } 中的内容进来就行
       
      	}
      };

      我这里根本么编译不了你的代码,如果你可以正常编译则加入上面那段试试吧。

      • 匿名 说: ( Stranger commented in LL19.com )

        我是这样加的。但没有成功!我可以把原文件发给你,你的邮箱地址?
        MySound.onLoad = function(success:Boolean) {
        if (!success) {
        top.equalizer._visible = 0;
        if (autoStart == “random”) {
        current_song = random(song_total) + 1;
        } else {
        ((current_song == song_total) ? ((current_song = 1)) : (current_song++));
        }
        playSong();
        };
        top.track_load.onEnterFrame = function () {
        total = this._parent._parent.MySound.getBytesTotal();
        geladen = this._parent._parent.MySound.getBytesLoaded();
        if (geladen != total) {
        this._parent.load_display = Math.round((geladen * 100) / total) + “% Loaded”;
        this._xscale = Math.round((geladen * 100) / total);
        } else {
        this._xscale = 100;
        top.equalizer._visible = 1;
        delete this.onEnterFrame;
        delete this._parent.load_display;
        //复制MySound.onSoundComplete = function () { } 中的内容进来就行
        }
        }
        };

        • 19. 说: ( Admin commented )

          LL19.com@gmail.com

          • 匿名 说: ( Stranger commented in LL19.com )

            已发送,请查收。

            • 19. 说: ( Admin commented )

              已回复

              • 匿名 说: ( Stranger commented in LL19.com )

                收到,多谢了。不知怎么说好,用一句话形容:你太伟大了!

              • 匿名 说: ( Stranger commented in LL19.com )

                请再试一下,改mp3后掇可以。如:mp3111
                但如果i不改后掇,输入一个不存在的或失效地址就不行了。

              • 19. 说: ( Admin commented )

                不可能~
                都是无效的地址怎么还能不行。

                http://bbs.duxiu.com/good.mp3

                http://bbs.duxiu.com/upfile/file/good.mp3123123

                http://zhumin2.chu.edu.cn/007342e3d8c6.mp3

                http://zhumin2.chu.edu.cn/300/007342e3d8c6.mp311

                我试了都会跳转到下一首

                MySound.onLoad = function(success:Boolean) {if (!success) {
                的意思就是加载不到后要做什么处理,这样也不行你就可以向ADOBE提交BUG了。

                • 匿名 说: ( Stranger commented in LL19.com )

                  您好:有些事真的是很怪,改成http://bbs.duxiu.com/good.mp3可以。

                  这样就不行:http://bb.duxiu.com/upfile/file/good.mp3,只是开头处的http://bbs..中少了个s。为什么啊?

                • 19. 说: ( Admin commented )

                  我这里不管是用http://bbs.duxiu.com/good.mp3
                  还是http://bb.duxiu.com/upfile/file/good.mp3
                  都测试无问题,并且你的播放列表的XML有语法错误。

                  还有不要一次同样的内容重复评论多次会被当做垃圾评论,还有说不清的问题加QQ13638812

                  • 匿名 说: ( Stranger commented in LL19.com )

                    对不起,不是我想我发同样的问题。发完了,我这看不到,以为没发出去。请你把你测试的加无错的播放列表再发给我一份吧,谢谢你了。让你受累了!udhjjn@163.com

                  • 19. 说: ( Admin commented )
                    1
                    2
                    3
                    4
                    5
                    6
                    7
                    8
                    9
                    10
                    11
                    12
                    13
                    14
                    15
                    16
                    17
                    18
                    19
                    20
                    21
                    
                    <?xml version="1.0" encoding="UTF8"?>
                    <player showDisplay="yes" showPlaylist="yes" autoStart="yes">
                    	<song path="http://bb.duxiu.com/upfile/file/good.mp3" title="天不刮风天不下雨 快四"/>
                    	<song path="http://bbs.duxiu.com/good.mp3" title="萨克斯风成长的岁月快四舞曲"/>
                    	<song path="http://zhumin2.chu.edu.cn/300/007342e3d8c6.mp3" title="星夜的离别.冬日恋情.为什么对你掉泪"/>
                    	<song path="http://zhumin2.chu.edu.cn/300/f274643ba4db.mp3" title="快四.点燃一只烟.清官谣.故事就是事"/>
                    	<song path="http://zhumin2.chu.edu.cn/300/8234969_1.mp3" title="雪撬--打虎上山(迪斯科)"/>
                    	<song path="http://zhumin2.chu.edu.cn/300/9571_1.mp3" title="拉网小调(迪斯科)"/>
                    	<song path="http://zhumin2.chu.edu.cn/300/108640_4.mp3" title="金梭与银梭(霹雳舞)"/>
                    	<song path="http://zhumin2.chu.edu.cn/300/06451_1.mp3" title="回娘家"/>
                    	<song path="http://zhumin2.chu.edu.cn/300/04928073171789_1.mp3" title="快四 妹妹别哭 大妹子 九妹"/>
                    	<song path="http://zhumin2.chu.edu.cn/300/15084_3.mp3" title="中四 过河 兵哥哥"/>
                    	<song path="http://zhumin2.chu.edu.cn/300/2007353553573351390_1.mp3" title="中四 中国人 中国娃 春天的故事"/>
                    	<song path="http://zhumin2.chu.edu.cn/300/2007445151016618055020_1.mp3" title="中四 得意的笑 大姑娘美 "/>
                    	<song path="http://zhumin2.chu.edu.cn/300/2007442101849523676664_1.mp3" title="快四 任逍遥 站在高岗上 妹妹我爱你 "/>
                    	<song path="http://zhumin2.chu.edu.cn/300/2007442218631326047514_1.mp3" title="中四 好汉歌 九九女儿红 爱江山更爱美人 "/>
                    	<song path="http://zhumin2.chu.edu.cn/300/338562d4a396.mp3" title="快四 大妹子 因为爱你 梦驼铃"/>
                    	<song path="http://zhumin2.chu.edu.cn/300/cb23fb1dda1d.mp3" title="中四 冰糖葫芦.妹妹等等我 草原牧歌"/>
                    	<song path="http://zhumin2.chu.edu.cn/300/e965a208180c.mp3" title="快四 九妹 信天游 为你终身守口如瓶"/>
                    	<song path="http://zhumin2.chu.edu.cn/300/20074232153037583399531_2.mp3" title="快四 快乐老家、愚公移山、梦中的蝴蝶"/>
                    </player>

                    你说的两个错误地址都在上面,绝对测试通过。


回复分页(Comments pages):     « 早前评论   

文章回复(Leave a reply):

注意: 评论者允许直接点击留言人下方的“回复并邮件”按钮将自己回复的评论邮件通知另外评论者。点击“回复”按钮则只回复不发邮件。