自制MP3播放器

jone999 2005-12-19 03:07:28
如何实现功能:边放音乐,,一边显示歌词(歌词已经存在TXT文件中)...
...全文
410 19 打赏 收藏 转发到动态 举报
写回复
用AI写文章
19 条回复
切换为时间正序
请发表友善的回复…
发表回复
wenhuiyan 2006-05-25
  • 打赏
  • 举报
回复
我想自己寫一個播放mp3的程序員,該如何下手,還要學什麼?
wenhuiyan 2006-05-25
  • 打赏
  • 举报
回复
我想自己寫一個播放mp3的程序員,該如何下手,還要學什麼?
anan221 2006-02-20
  • 打赏
  • 举报
回复
你们的mediaplay控件有没有FileName,GetMediaInfoString属性啊,帮忙解决啊
anan221 2006-02-20
  • 打赏
  • 举报
回复
楼上的我的想学习,给个先,zhengxiao221@126.com
Qim 2006-02-20
  • 打赏
  • 举报
回复
<a href=http://community.csdn.net/Expert/topic/4566/4566039.xml?temp=.637005>相关链接</a>
Qim 2006-02-20
  • 打赏
  • 举报
回复
我已经用C#实现了播放和歌词同步这一功能.只是外观不咋地.有兴趣的可给我个Mail.我发给大家.
共同学习,共同进步!
代码蜗牛sky 2006-02-16
  • 打赏
  • 举报
回复
如果你想歌词显示的时间较为准确的话,最好根据音频的频谱来显示

比如当演唱者在换气的时候,频谱的波形会有明显的变化
njuzgj 2006-02-16
  • 打赏
  • 举报
回复
关注
Qim 2006-02-16
  • 打赏
  • 举报
回复
歌词文件的每一句前面都有一个时间,表示当前歌词和歌曲同步的时间.
只要每一次读取每一句歌词并和歌曲同步就可以了.
jone999 2005-12-22
  • 打赏
  • 举报
回复
UP
jone999 2005-12-21
  • 打赏
  • 举报
回复
OO................... lander9999你的9比我的还多,呵呵.........
tangyong12 2005-12-20
  • 打赏
  • 举报
回复
把mediaplay控件,然后里面自己慢慢摸索那些方法吧,方法太多了,不过都很直观。一下子不可能都列出来解释的,自己做就知道了
jone999 2005-12-20
  • 打赏
  • 举报
回复
如果用Progress.start()...这个的话,每次都得重新启动播放软件,用什么MediaPlay的....要怎么实现,,添加播放列表,并相应的显示出歌词.............??????????????
lander9999 2005-12-20
  • 打赏
  • 举报
回复
以前用过"千千静听"做的蛮好的。同步比较麻烦
califord 2005-12-20
  • 打赏
  • 举报
回复
不知道,要关注一下
jone999 2005-12-20
  • 打赏
  • 举报
回复
有人研究过吧?期待来点现成的哦...嘿嘿....^_^~~~~~~~~~~~~~~~~

实在没有得自己摸索了:(........
diandian82 2005-12-19
  • 打赏
  • 举报
回复
能把mp3放出来还不会显示歌词么?
solsolsol 2005-12-19
  • 打赏
  • 举报
回复
不解
直接读不可以么?
jone999 2005-12-19
  • 打赏
  • 举报
回复
UP------------
一个自制MP3播放器(含原代码)这个程序的关键是BmpShape的应用。unit BmpShape;{2002/08/22 by ultrared根据BMP文件创建窗口注意:1. BMP文件最左上的一个点颜色作为背景色2. BmpShape控件只能用在TForm容器上3. BMP文件可以是256色或者24位色4。大块背景色必须和背景色绝对相等才能获得正常效果}interfaceuses Forms,Windows, Messages, SysUtils, Classes, Controls, ExtCtrls,Graphics;type TBmpShape = class(TImage) private { Private declarations } BackColor:TColor;//背景颜色 FColorDither:boolean;//是否允许背景颜色有一定的抖动 function GetRegion:HRGN;//前景图片的区域 procedure setColorDither(cd:Boolean); protected { Protected declarations } public { Public declarations } constructor Create(AOwner:TComponent);override; procedure Apply;//使用效果 published { Published declarations } property Dither:Boolean read FColorDither write setColorDither; end;procedure Register;implementationprocedure Register;begin RegisterComponents('Samples', [TBmpShape]);end;procedure TBmpShape.setColorDither(cd:Boolean);begin if cd<>FColorDither then FColorDither:=cd;end;constructor TBmpShape.Create(AOwner:TComponent);begin inherited Create(AOwner); BackColor:=RGB(0,0,0); FColorDither:=FALSE;end;//核心子程序,获得BMP图片的前景区域function TBmpShape.GetRegion:HRGN;var i,j:integer; rgn1,rgn2:HRGN; StartY:integer; r,g,b,r1,g1,b1:BYTE; cc:TColor;begin if Picture.Bitmap<>nil then begin BackColor:=Picture.Bitmap.Canvas.Pixels[0,0]; rgn1:=CreateRectRgn(0,0,0,0); for i:=0 to Picture.Bitmap.Width-1 do begin StartY:=-1; for j:=0 to Picture.Bitmap.Height-1 do begin cc:=Picture.Bitmap.Canvas.Pixels[i,j]; if FColorDither then begin //允许和背景有一定的色差 r:=(cc and $FF0000) shr 16; g:=(cc and $FF00) shr 8; b:=cc and $FF; r1:=(BackColor and $FF0000) shr 16; g1:=(BackColor and $FF00) shr 8; b1:=BackColor and $FF; if (abs(r-r1)<10) and (abs(g-g1)<10) and (abs(b-b1)<10) then begin if (StartY>=0) and (j>=StartY) then begin rgn2:=CreateRectRgn(i,StartY,i+1,j); CombineRgn(rgn1,rgn1,rgn2,RGN_OR); StartY:=-1; end; end else begin if Starty<0 then StartY:=j else if j=(Picture.Bitmap.Height-1) then //最下面一个点 begin rgn2:=CreateRectRgn(i,StartY,i+1,j); CombineRgn(rgn1,rgn1,rgn2,RGN_OR); end; end; end else //不允许色差 begin if cc=BackColor then begin if (StartY>=0) and (j>=StartY) then begin rgn2:=CreateRectRgn(i,StartY,i+1,j); CombineRgn(rgn1,rgn1,rgn2,RGN_OR); StartY:=-1; end; end else begin if Starty<0 then StartY:=j else if j=(Picture.Bitmap.Height-1) then //最下面一个点 begin rgn2:=CreateRectRgn(i,StartY,i+1,j); CombineRgn(rgn1,rgn1,rgn2,RGN_OR); end; end; end; end; end; result:=rgn1; end else result:=0;end;procedure TBmpShape.Apply;begin if Parent is TForm then begin Left:=0; Top:=0; Width:=Picture.Bitmap.Width; Height:=Picture.Bitmap.Height; with (Parent as Tform) do begin BorderStyle:=bsNone; Width:=Self.Width; Height:=Self.Height; end; SetWindowRgn(Parent.Handle,GetRegion,FALSE); end;end;end.

110,536

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧