au3是否能实现 lrc 同步的功能???
好像目前已经可以播放mp3了如果加上歌词的话就完美了
附上 一个歌词。
我想应该可以实现的
周杰伦 - 稻香
词:周杰伦 曲:周杰伦
www.50004.com
好歌收藏 放飞心情
对这个世界如
果你有太多的抱怨
跌倒了
就不敢继续往前走
为什么
人要这么的脆弱 堕落
请你打开电视看看
多少人 为生命在努力
勇敢的走下去
我们是不是该知足
珍惜一切 就算没有拥有
还记得你说家是唯一的城堡
随着稻香河流继续奔跑
微微笑 小时候的梦我知道
不要哭让萤火虫带著你逃跑
乡间的歌谣永远的依靠
回家吧 回到最初的美好
不要这么容易就想放弃
就像我说的
追不到的梦想
换个梦不就得了
为自己的人生鲜艳上色
先把爱涂上喜欢的颜色
笑一个吧
功成名就不是目的
让自己快乐快乐
这才叫做意义
童年的纸飞机
现在终于飞回我手里
所谓的那快乐
赤脚在田里追蜻蜓追到累了
偷摘水果被蜜蜂给叮到怕了
谁在偷笑呢
我靠着稻草人 吹着风
唱着歌 睡着了
哦 哦~
午后吉它在虫鸣中更清脆
哦 哦~
阳光洒在路上就不怕心碎
珍惜一切 就算没有拥有
还记得你说家是唯一的城堡
随着稻香河流继续奔跑
微微笑 小时候的梦我知道
不要哭让萤火虫带著你逃跑
乡间的歌谣永远的依靠
回家吧 回到最初的美好
还记得你说家是唯一的城堡
随着稻香河流继续奔跑
微微笑 小时候的梦我知道
不要哭让萤火虫带著你逃跑
乡间的歌谣永远的依靠
回家吧 回到最初的美好
~~End~~
[ 本帖最后由 lele9013 于 2009-2-12 17:15 编辑 ] 思路很简单
TimerInit()之后while循环
TimerDiff得到时间差值
把差值round了后比较时间轴
#include
GUICreate("世界你好", 200, 100)
GUICtrlCreateLabel("你好世界!你最近怎样?", 30, 10)
$okbutton = GUICtrlCreateButton("确定", 70, 50, 60)
GUISetState(@SW_SHOW)
$data = 0
$begin = TimerInit()
While 1
$msg = GUIGetMsg()
$dif = TimerDiff($begin)
$data = $data + 1
If (Round($dif, 1) == 5.5) Then
ToolTip("time=5.5")
EndIf
Select
Case $msg = $okbutton
MsgBox(0, "窗口事件", "循环次数:" & $data & ",时间间隔:" & $dif)
Case $msg = $GUI_EVENT_CLOSE
MsgBox(0, "窗口事件", "您选择了关闭!正在退出...")
ExitLoop
EndSelect
WEnd 仔细看了下
貌似这个 不能做成通用的吧
毕竟每个lrc是不同的
能否 按的时间进行匹配呢?
[ 本帖最后由 lele9013 于 2009-2-13 10:13 编辑 ] 期待牛人出现 搞定#include <ButtonConstants.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
#include <Sound.au3>
#Region ### START Koda GUI section ### Form=
$Form1 = GUICreate("Form1", 502, 81, 262, 265)
$Label1 = GUICtrlCreateLabel("作者:35888894", 8, 16, 484, 24)
GUICtrlSetFont(-1, 12, 400, 0, "MS Sans Serif")
GUICtrlSetColor(-1, 0xC0C0C0)
GUICtrlSetBkColor(-1, $GUI_BKCOLOR_TRANSPARENT)
$Label2 = GUICtrlCreateLabel("作者:35", 8, 16, 484, 24)
GUICtrlSetFont(-1, 12, 400, 0, "MS Sans Serif")
GUICtrlSetBkColor(-1, $GUI_BKCOLOR_TRANSPARENT)
GUICtrlSetColor(-1, 0xFF0080)
$Button1 = GUICtrlCreateButton("PLAY", 8, 48, 75, 25, 0)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###
$work=0
Dim $neirong
idopen()
$line_1=0
Dim $shijian
Dim $sjpd
Dim $geshu
$tm=0
$numold=0
$num=0
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
Case $Button1
$sound = _SoundOpen("zhoujielun-daoxiang.mp3")
_SoundPlay($sound)
$work=1
$line_1=0
EndSwitch
If $work=1 Then
$tm=_SoundPos ( $sound,2)
; ToolTip($tm&" "&Int((StringMid($neirong[$line_1],2,2))*60*1000+Int(StringMid($neirong[$line_1],5,2))*1000+Int(StringMid($neirong[$line_1],8,2)))&"num="&$num&"shijian="&$shijian&" geshu="&$geshu )
If $tm>=Int((StringMid($neirong[$line_1],2,2))*60*1000+Int(StringMid($neirong[$line_1],5,2))*1000+Int(StringMid($neirong[$line_1],8,2))) Then
$shijian=Int((StringMid($neirong[$line_1+1],2,2))*60*1000+Int(StringMid($neirong[$line_1+1],5,2))*1000+Int(StringMid($neirong[$line_1+1],8,2)))-Int((StringMid($neirong[$line_1],2,2))*60*1000+Int(StringMid($neirong[$line_1],5,2))*1000+Int(StringMid($neirong[$line_1],8,2)))
GUICtrlSetData($Label1,StringMid($neirong[$line_1],11))
GUICtrlSetFont($Label1, 12, 400, 0, "MS Sans Serif")
GUICtrlSetColor($Label1, 0xC0C0C0)
GUICtrlSetBkColor($Label1, $GUI_BKCOLOR_TRANSPARENT)
GUICtrlSetData($Label2,"")
GUICtrlSetFont($Label2, 12, 400, 0, "MS Sans Serif")
GUICtrlSetColor($Label2, 0xFF0080)
GUICtrlSetBkColor($Label2, $GUI_BKCOLOR_TRANSPARENT)
$geshu=StringLen(StringMid($neirong[$line_1],11))
If $geshu>0 Then
$sjpd=$shijian/($geshu)
EndIf
$line_1+=1
EndIf
;------------------------------------------------------------------红字歌词循环
$num=Ceiling($geshu-(Int((StringMid($neirong[$line_1],2,2))*60*1000+Int(StringMid($neirong[$line_1],5,2))*1000+Int(StringMid($neirong[$line_1],8,2)))-$tm)/$sjpd)
; ToolTip($tm&" "&Int((StringMid($neirong[$line_1],2,2))*60*1000+Int(StringMid($neirong[$line_1],5,2))*1000+Int(StringMid($neirong[$line_1],8,2)))&"num="&$num&"shijian="&$shijian&" geshu="&$geshu )
If $num>=0 And $num <> $numold And $line_1>0 Then
; Beep(1000,10)
rgc($num)
$numold =$num
EndIf
;------------------------------------------------------------------
If $tm=_SoundLength ( $sound,2) Then _SoundClose ( $sound )
EndIf
WEnd
Func idopen()
$var="F:\AU3学习\音乐播放\zhoujielun-daoxiang.txt"
If $var<>"" Then
Local $aArray
_FileReadToArray ( $var, $aArray)
For $i=0 To $aArray-1
If $aArray[$i+1]="" Then ExitLoop
;_GUICtrlListBox_AddString($List1,$aArray[$i+1])
$neirong[$i]=$aArray[$i+1]
Next
EndIf
EndFunc
Func rgc($co)
GUICtrlSetData($Label2,StringMid(StringMid($neirong[$line_1-1],11),1,$co))
GUICtrlSetFont($Label2, 12, 400, 0, "MS Sans Serif")
GUICtrlSetColor($Label2, 0xFF0080)
GUICtrlSetBkColor($Label2, $GUI_BKCOLOR_TRANSPARENT)
EndFunc
注意歌词必须是周杰伦 - 稻香,这样的格式,否则会出错,前面必须是“"这样的格式 请问你用的是什么版本
我最新的 测试 按play 无效
[ 本帖最后由 lele9013 于 2009-2-13 13:13 编辑 ] 我的是最新的版本,你看看你MP3设置有错没?还有歌词的路径 饿。。对了。是lrc部分前面有
还有空格
能不能兼容性强点
毕竟我是做通用的。。- - 晕死,都给你代码了,自己改下好吧?
提示你下,可以设置下,如果不是格式的跳过 恩 弄好了。。谢谢了
只是发现一个问题
会闪烁。。
我已经提供源码
有空的话一起研究下吧
[ 本帖最后由 lele9013 于 2009-2-13 16:29 编辑 ] 8错8错,下个看看:face (29): 但是会闪烁。。。。。有办法解决吗 正在想办法,闪烁十分不爽啊....
还有这个东西BUG不少,不过要是做完美了真的不输给任何播放器哦:face (37): 研究了很长时间
发现 是$Label1 $Label2 产生的闪烁
如果不用卡拉ok的方式。。
光显示一个的话 是不会闪的。。。 继续求教下。。哎 还差一点点
页:
[1]