仿PSP的FLASH歌词同步波形播放器.
仿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中间的部分,不想控制就空着。
39 Responses to “ 仿PSP的FLASH歌词同步波形播放器. ”
-
-
19你好,看到你的播放器真有惊艳的感觉;-)我下载来看了看却不会用……请问那个播放器 GLLL-FLV.swf 是还需要根据压缩包里的源码自己编译吗?我是代码小白,囧……
| 回复并邮件 -
想实现一个影片剪辑随播放器中的声音播放,也就是声音停止mc就不播放,当有声音时就自动播放。当播放下一首时(指的是有声音状态,并不是加载时)又可以从mc头开始播放。只加载但无声时mc不播放。
| 回复并邮件 -
楼主您好,能帮一忙。帮我把下面的代吗修必成找不到歌曲地址,自动跳到下一道播放。先谢谢了
[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]
| 回复并邮件