`
hgfghwq15
  • 浏览: 49891 次
  • 性别: Icon_minigender_1
  • 来自: 青岛
社区版块
存档分类
最新评论

不够50行代码的AS3歌词显示

阅读更多

引用内容
该文章为Demo用途,请见谅…
该文章来自猫粮的blog:
[url=http://blog.xflex.cn/]
http://blog.xflex.cn
[/url]

自己做的mp3播放器需要一个歌词显示功能,baidu一下以后就看到zas大大的歌词显示的代码。将它理解以后...就有了下面的mp3播放器+歌词显示的demo....
运行环境:Flash9.把代码直接黏贴取第一帧就ok。歌词的xml文档在
[url=http://lrcsky.feiyes.net/]
http://lrcsky.feiyes.net/
[/url]
可以下载到。我想注释已经讲得很清楚了..大家就看代码吧..关键的也就几句而已。
当然,下面给您奉上的是源代码~还是老样子,没有显示样例(因为是trace输出的)。
请到
[url=http://xflex.cn/blog/article.asp?id=37]
http://xflex.cn/blog/article.asp?id=37
[/url]
下载
程序代码
//定义Sound实例
var song:SoundChannel;  
var Mp3Player:Sound;
var t:Number=0;
request=new URLRequest("http://www.rainbow6.cn/attachments/month_0606/b20066932028.mp3");
Mp3Player= new Sound(request);
song=Mp3Player.play();
//========================理解的分界线=======================
//加载xml文档
// 歌词来自:
[url=http://lrcsky.feiyes.ne/]
http://lrcsky.feiyes.ne/
[/url]
//因为分析lrc太麻烦,所以改用xml格式。同时也体现了E4x在分析xml文档时候强大的实力
//代码长度和分析lrc文件相比,实在差太远..
//而且..我只需要做分析xml的歌词文件就ok了,咪哈哈.....
var myXML:XML = new XML();
var Time:Array;
var Word:Array;
var XML_URL:String = "爸爸妈妈.xml";
var myXMLURL:URLRequest = new URLRequest(XML_URL);
var myLoader:URLLoader = new URLLoader(myXMLURL);
//xml文档加载成功后执行的动作。
myLoader.addEventListener("complete", xmlLoaded);
//========================增加理解的分界线=======================
function xmlLoaded(evtObj:Event):Object {
//geda大大说要测试效率,我不知道怎么测试..只能看时间了..
trace(getTimer());
        //声明两个数组,一个用来存放时间,一个用来存放歌词。
        Time = new Array();
        Word = new Array();
        myXML = XML(myLoader.data);
        var i:Number = 0;
        //myXML.LYRICS.LRC.length():得到xml文档的行数
        var b:Number = myXML.LYRICS.LRC.length();
        for(i =0;i
            //
            //猫粮
            //
            //
            //myXML.LYRICS.LRC.@TAG是取节点的属性
            //返回xxxx;
            //myXML.LYRICS.LRC是取节点值,返回猫粮
            Time=myXML.LYRICS.LRC.@TAG;
            Word=myXML.LYRICS.LRC;
        }
trace(getTimer());
//分析完大概是用了30多毫秒,速度还可以。
}
//========================增加理解的分界线=======================
//设定循环时间
myTimer = new Timer(500);
myTimer.addEventListener(TimerEvent.TIMER,lrcOnShow);
myTimer.start();//定时器开始
function lrcOnShow(even:Event)
{
    //这里受益于zas的思路..大概都是这样显示的吧…
    //让Time[t]的时间永远高于当前播放时间
    //并且显示的歌词是Time[t]的前一句。
    //歌词和时间的同步,通过设定同样的下标来实现~
    if(song.position>Time[t])
    {
        t++
        trace(Word[t-1]);
        }
    //在这里,其实先要设定一个变量来保存position属性。
本文转自:http://www.5uflash.com/flashjiaocheng/Flash-as3-jiaocheng/1801.html
分享到:
评论

相关推荐

    as3.0 ,actionscript3.0播放器,MP3播放器 源码

    运用AS3.0和XML结合开发的MP3音乐播放器,有开始、暂停、下一首、前一首、循环播放、顺序播放、随机播放、歌词显示、皮肤切换等,类似千千静听。代码提供学习爱好者分享,界面优美。 更多请访问 畅城网...

    C#+WinForm视频播放器(AxWindowsMediaPlayer) C# 源代码

    C# 源代码 功能:使用Windows Media Player播放音乐,视频,支持 ...5.支持歌词显示 6.本程序支持Windows Media Player中所有能播放的文件格式。 插件: 必须安装 RealoneED.exe 让windowsMediaPlayer支持RMRMVB文件

    CoCoPlayer歌词同步效果

    CoCoPlayer 可以让初学者学习使用android播放音乐,实现歌词同步滚动显示效果,自定义view等用法,也包含了LRC解析相关代码,解析LRC使用的正则表达式~请多多支持~~CoCoPlayer 完整正在开发中,开发完成之后将把源码...

    运用tkinter做了一个播放音乐的工具(能显示歌词)

    运用tkinter做了一个播放音乐的工具(能显示歌词) 废话不多说,直接上代码吧! import tkinter as tk import time import requests import urllib.parse as parse import json import os from pygame import mixer ...

    vc++ 开发实例源码包

    音乐播放器 内含歌词显示实现源码 ActiveXDemo 演示了装载以及卸载atl控件的操作以及注册操作 ado 登录模块的制作 如题,登陆数据库的操作。 ado,dao,odbc数据库连接vc代码 演示了不同的数据库的各种操作(连接、...

Global site tag (gtag.js) - Google Analytics