CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
不看会后悔的Windows XP之经验谈 简单快捷DIY实用家庭影院
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  Delphi >  VCL组件开发及应用

请大家看看我的软件,花了我将近一年时间作出来的东东,请各位大侠多提宝贵意见!!

楼主yingshang(伤影)2004-01-03 20:18:50 在 Delphi / VCL组件开发及应用 提问

请大家看看我的软件,花了我将近一年时间作出来的东东,请各位大侠多提宝贵意见!!  
   
  下栽地址:  
  http://www.zszx.info:83/138682/soft/2004131630.rar  
   
  是一个多媒体播放软件,支持插件和皮肤!大约1.44m 问题点数:100、回复次数:121Top

1 楼cll007(gazo)回复于 2004-01-03 20:37:18 得分 2

好东西,不要我注册吧Top

2 楼jiezhi(风满袖)回复于 2004-01-03 20:39:41 得分 2

lookTop

3 楼Shawphen2000(啸峰)回复于 2004-01-03 20:45:11 得分 2

不错不错,真的很好。Top

4 楼yingshang(伤影)回复于 2004-01-03 20:56:34 得分 0

不需要注册!Top

5 楼seasunsky(来来往往)回复于 2004-01-03 20:57:50 得分 0

先升级kv(实话实说),下载速度很快,100k啊!Top

6 楼yingshang(伤影)回复于 2004-01-03 21:03:39 得分 0

楼上的老兄多虑了,说实话,我还没有编病毒的技术!呵呵!Top

7 楼VeryOldMan(无头苍蝇(www.gzmeishi.com))回复于 2004-01-03 21:19:24 得分 2

不错不错,真的很好。  
   
  界面还可以做得更花一点,我可是个老色鬼哦!   :DTop

8 楼cll007(gazo)回复于 2004-01-03 21:45:47 得分 2

试用了一下下,感觉真的不错哦  
  没找到版权信息呀  
  老兄加上吧,不要搞木马哦  
  发布出去哦  
   
  Top

9 楼seasunsky(来来往往)回复于 2004-01-04 10:33:54 得分 2

下载看了看,不错的说。Top

10 楼SuperGam()回复于 2004-01-04 10:36:53 得分 2

不错!Top

11 楼superlionet(彼岸)回复于 2004-01-04 10:53:33 得分 2

不错的东东,用什么做的?  
  Top

12 楼Erice(白雪公猪)回复于 2004-01-04 11:02:43 得分 2

不错哟Top

13 楼delphipan(要快乐的过日子)回复于 2004-01-04 12:18:58 得分 2

看看吧Top

14 楼hanxian(KO)回复于 2004-01-04 12:29:52 得分 2

先看看哦Top

15 楼xinshiji(自由我有)回复于 2004-01-04 12:45:23 得分 2

lookTop

16 楼haipin(eclipse\netbeans你选择谁)回复于 2004-01-04 12:53:53 得分 2

look   lookTop

17 楼chenylin(陈SIR)回复于 2004-01-04 12:55:48 得分 2

真不错!界面很漂亮,操作也方便。Top

18 楼fcjg(★飘来飘去!★)回复于 2004-01-04 13:03:05 得分 2

爽不错,Top

19 楼fj218(双元)回复于 2004-01-04 13:04:26 得分 2

界面很不错,但程序不是很稳定。Top

20 楼cocoboy79(ithink79.spaces.live.com)回复于 2004-01-04 13:07:06 得分 2

做的不错啊,支持!  
  建议放到共享软件网站上去卖钱  ^_^Top

21 楼hkbarton(→Beginner←)回复于 2004-01-04 13:13:46 得分 2

不错Top

22 楼yctwfly(西风狂想)回复于 2004-01-04 13:15:20 得分 2

不错,支持!Top

23 楼yuzhan(小于)回复于 2004-01-04 13:18:31 得分 2

非常不错,羡慕ingTop

24 楼zzllabc(抱朴子--清心释累,绝率忘情)回复于 2004-01-04 13:22:25 得分 2

不错!!  
  顺便问你一个问题:你是怎样取得文件的播放时间??谢谢!Top

25 楼alexzhang00(三角猫)回复于 2004-01-04 13:32:04 得分 2

好Top

26 楼ekin(风语者)回复于 2004-01-04 14:24:15 得分 2

kankanTop

27 楼crossbow(【以无形为形】)回复于 2004-01-04 14:43:31 得分 2

正在下载...估计不错  
   
  兄台,你是老师吗?浙江人?Top

28 楼rgbwoo(天行者)回复于 2004-01-04 14:43:38 得分 2

厉害  
  Top

29 楼dongdyl(dyl)回复于 2004-01-04 14:45:48 得分 2

很不错Top

30 楼klend(苯鸟(2006))回复于 2004-01-04 14:47:43 得分 2

有辕马吗?Top

31 楼crossbow(【以无形为形】)回复于 2004-01-04 14:54:03 得分 2

不错,但几乎没有上面文档,资源占用比较高,支持ra,rm,vqf,   asf格式吗?Top

32 楼xiaoqiang123(xiaoqiang)回复于 2004-01-04 15:34:16 得分 2

的确不错!Top

33 楼WJY2003(笨笨鸟儿啄NET)回复于 2004-01-04 15:47:59 得分 2

的确是  
  太占资源啦  
  Top

34 楼tanxj(明剑)回复于 2004-01-04 15:49:02 得分 2

不错!Top

35 楼tresss(破天惊)回复于 2004-01-04 15:55:17 得分 2

软件的界面作的很不错.  
  但是有些功能.如"关于"一应放在明显的地方.  
  另外,如果能随用户要求改变窗口大小的话,那会更受人喜爱的!Top

36 楼sherry3000(怀念巴乔)回复于 2004-01-04 16:08:01 得分 2

怎么换肤呢?我看只有一个选择呀?Top

37 楼yingshang(伤影)回复于 2004-01-04 16:19:41 得分 0

to   crossbow(【带三尺剑立不世之功】)   :  
      的确,占CPU的资源,谢谢您的提醒。看来算法要好好想想了!  
      支持asf格式,rm格式我正在想办法,应为现在要支持这种格式,就我所知必须要用到realplayer的activeX控件和一大堆dll,还要注册ocx,我正寻求一个简单的办法。  
   
  to   tresss(破天惊)   :  
      我里面有四个不同的"关于",不知道您指的是哪个!  
      主窗体大小是可以拉动的呀!您指的是不是影视文件播放的窗口!  
   
  to   sherry3000(海子)   :  
      作图对我来说真是一件痛苦的事,暂时只能提供一套皮肤(还是从nvdvd软件上扒下来改的).  
   
  Top

38 楼windeflower(风之花)回复于 2004-01-04 16:24:07 得分 2

不错  
   
  Top

39 楼folder80(folder80)回复于 2004-01-04 16:31:38 得分 2

顶Top

40 楼Qbcdb(陈景)回复于 2004-01-04 16:39:56 得分 2

真的很好Top

41 楼ssq_td(离别的车站)回复于 2004-01-04 16:51:01 得分 2

 
  想问下,条形音频显示,是怎么做的!能交流下吗?  
   
  resun_shaoqing@163.comTop

42 楼dinyy()回复于 2004-01-04 16:53:20 得分 2

goodTop

43 楼lightice(ll)回复于 2004-01-04 17:14:50 得分 2

能放点代码就好了hohoTop

44 楼coreblood(I don't Know )回复于 2004-01-04 17:38:42 得分 2

呵呵下载中Top

45 楼Tensionli()回复于 2004-01-04 18:24:44 得分 2

upTop

46 楼sternz(方天)回复于 2004-01-04 18:38:29 得分 2

赞一个~~  
  的确不错!Top

47 楼xiaoyuer0851(红旗下的蛋)回复于 2004-01-04 19:27:13 得分 2

呵呵,   不错    
  Top

48 楼duxbin(孤星)回复于 2004-01-04 19:37:44 得分 2

呵呵,我下载居然有274KTop

49 楼gamevale(村长)回复于 2004-01-04 19:54:35 得分 2

为什么声音调节不起作用Top

50 楼yingshang(伤影)回复于 2004-01-04 20:25:31 得分 0

to   gamevale(村长):  
      你用的是不是XP环境,声音调节我的实现如下,在有些XP下就报错,不知为什么:  
   
  {*******************************************************************}  
  {                                                                                                                                       }  
  {         音量调节模块:                                                                                                   }  
  {                 1.   获得音量(左右声道)的值和是否静音;                                         }  
  {                 2.   设置音量(左右声道)的值和是否静音。                                         }  
  {                                                                                                                                       }  
  {*******************************************************************}  
   
  unit   VolumeUnit;  
   
  interface  
   
  uses  
      //   BasicUnit  
      SysUtils,  
      MMSystem,  
      Dialogs;  
       
   
  Type  
      TDeviceName   =   (Master,   Microphone,   WaveOut,   Synth);  
   
      //   获得混音器参数  
      procedure   GetVolume(DN:   TDeviceName);  
      //   设置混音器参数  
      procedure   SetVolume(DN:   TDeviceName);  
   
   
  implementation  
   
  var  
      MuteVol   :   Boolean;     //   静音  
      LeftVol   :   Integer;     //   左声道  
      RightVol:   Integer;     //   右声道  
   
   
  {---   获取声音的所有参数   ------------------------------------------------}  
  procedure   GetVolume(DN:   TDeviceName);  
  var  
      intRet         :   Integer;  
      hMix             :   HMIXER;  
      mxl               :   TMixerLine;  
      mxc               :   MIXERCONTROL;  
      mxlc             :   MIXERLINECONTROLS;  
      mxcd             :   TMIXERCONTROLDETAILS;  
      details       :   array   [0..30]   of   Integer;  
      mcdMute       :   MIXERCONTROLDETAILS_BOOLEAN;  
      nMixerDevs:   Integer;  
  begin  
   
      //   检查混音器是否可用  
      nMixerDevs   :=   mixerGetNumDevs();  
      if   (nMixerDevs   <   1)   then  
      begin  
          Exit;  
      end;  
   
      //   打开混音器  
      intRet   :=   mixerOpen(@hMix,   0,   0,   0,   0);  
   
   
      //   获得左右声道的值  
      if   intRet   =   MMSYSERR_NOERROR   then  
      begin  
          case   DN   of  
              Master   :     mxl.dwComponentType   :=   MIXERLINE_COMPONENTTYPE_DST_SPEAKERS;  
              Microphone   :  
                          mxl.dwComponentType   :=   MIXERLINE_COMPONENTTYPE_SRC_MICROPHONE;  
              WaveOut   :   mxl.dwComponentType   :=   MIXERLINE_COMPONENTTYPE_SRC_WAVEOUT;  
              Synth     :     mxl.dwComponentType   :=   MIXERLINE_COMPONENTTYPE_SRC_SYNTHESIZER;  
          end;  
          mxl.cbStruct   :=   SizeOf(mxl);  
   
          //   获得控制器的信息  
          intRet   :=   mixerGetLineInfo(hMix,   @mxl,   MIXER_GETLINEINFOF_COMPONENTTYPE);  
   
          if   intRet   =   MMSYSERR_NOERROR   then  
          begin  
              FillChar(mxlc,   SizeOf(mxlc),0);  
              mxlc.cbStruct   :=   SizeOf(mxlc);  
              mxlc.dwLineID   :=   mxl.dwLineID;  
              mxlc.dwControlType   :=   MIXERCONTROL_CONTROLTYPE_VOLUME;  
              mxlc.cControls   :=   1;  
              mxlc.cbmxctrl   :=   SizeOf(mxc);  
   
              mxlc.pamxctrl   :=   @mxc;  
              intRet   :=   mixerGetLineControls(hMix,   @mxlc,   MIXER_GETLINECONTROLSF_ONEBYTYPE);  
   
              if   intRet   =   MMSYSERR_NOERROR   then  
              begin  
                  FillChar(mxcd,   SizeOf(mxcd),0);  
                  mxcd.dwControlID   :=   mxc.dwControlID;  
                  mxcd.cbStruct   :=   SizeOf(mxcd);  
                  mxcd.cMultipleItems   :=   0;  
                  mxcd.cbDetails   :=   SizeOf(Integer);  
                  mxcd.paDetails   :=   @details;  
                  mxcd.cChannels   :=   2;  
   
                  intRet   :=   mixerGetControlDetails(hMix,   @mxcd,MIXER_SETCONTROLDETAILSF_VALUE);  
   
                  LeftVol     :=   details[0];  
                  RightVol   :=   details[1];  
   
                  if   intRet   <>   MMSYSERR_NOERROR   then  
                      ShowMessage('设置控制器参数错误!');  
              end  
              else  
                  ShowMessage('获得控制器信息错误!');  
          end;     //   end   左右声道  
   
   
          //   获得静音值  
          if   intRet   =   MMSYSERR_NOERROR   then  
          begin  
              FillChar(mxlc,   SizeOf(mxlc),0);  
              mxlc.cbStruct   :=   SizeOf(mxlc);  
              mxlc.dwLineID   :=   mxl.dwLineID;  
              mxlc.dwControlType   :=   MIXERCONTROL_CONTROLTYPE_MUTE;  
              mxlc.cControls   :=   1;  
              mxlc.cbmxctrl   :=   SizeOf(mxc);  
              mxlc.pamxctrl   :=   @mxc;  
   
              //   获得静音控制器  
              intRet   :=   mixerGetLineControls(hMix,   @mxlc,   MIXER_GETLINECONTROLSF_ONEBYTYPE);  
   
              if   intRet   =   MMSYSERR_NOERROR   then  
              begin  
                  FillChar(mxcd,   SizeOf(mxcd),0);  
                  mxcd.cbStruct   :=   SizeOf(TMIXERCONTROLDETAILS);  
                  mxcd.dwControlID   :=   mxc.dwControlID;  
                  mxcd.cChannels   :=   1;  
                  mxcd.cbDetails   :=   SizeOf(MIXERCONTROLDETAILS_BOOLEAN);  
                  mxcd.paDetails   :=   @mcdMute;  
   
                  //   获得静音值  
                  intRet   :=   mixerGetControlDetails(hMix,   @mxcd,   MIXER_SETCONTROLDETAILSF_VALUE);  
   
                  if   mcdMute.fValue   =   0   then  
                      MuteVol   :=   false  
                  else  
                      MuteVol   :=   True;  
   
                  if   intRet   <>   MMSYSERR_NOERROR   then  
                      ShowMessage('设置控制器参数错误!');  
              end  
              else  
                  ShowMessage('获得控制器信息错误!');  
          end;     //   end   静音  
   
          //   关闭混音器  
          intRet   :=   mixerClose(hMix);  
      end;  
  end;  
   
  {---   设置声音的所有参数   ------------------------------------------------}  
  procedure   setVolume(DN:   TDeviceName);  
  var                        
    intRet         :   Integer;  
    hMix             :   HMIXER;      
    mxl               :   TMixerLine;  
    mxc               :   MIXERCONTROL;  
    mxlc             :   MIXERLINECONTROLS;  
    mxcd             :   TMIXERCONTROLDETAILS;  
    details       :   array   [0..30]   of   Integer;  
    mcdMute       :   MIXERCONTROLDETAILS_BOOLEAN;  
    nMixerDevs:   Integer;  
  begin  
   
      //   检查混音器是否可用  
      nMixerDevs   :=   mixerGetNumDevs();  
      if   (nMixerDevs   <   1)   then  
      begin  
          Exit;  
      end;  
   
      //   打开混音器  
      intRet   :=   mixerOpen(@hMix,   0,   0,   0,   0);  
      if   intRet   =   MMSYSERR_NOERROR   then  
      begin  
          case   DN   of  
              Master   :     mxl.dwComponentType   :=   MIXERLINE_COMPONENTTYPE_DST_SPEAKERS;  
              Microphone   :  
                              mxl.dwComponentType   :=   MIXERLINE_COMPONENTTYPE_SRC_MICROPHONE;  
              WaveOut   :   mxl.dwComponentType   :=   MIXERLINE_COMPONENTTYPE_SRC_WAVEOUT;  
              Synth     :     mxl.dwComponentType   :=   MIXERLINE_COMPONENTTYPE_SRC_SYNTHESIZER;  
          end;  
          mxl.cbStruct   :=   SizeOf(mxl);  
   
          //   获得控制器的信息  
          intRet   :=   mixerGetLineInfo(hMix,   @mxl,   MIXER_GETLINEINFOF_COMPONENTTYPE);  
   
   
          //   设置左右声道音量  
          if   intRet   =   MMSYSERR_NOERROR   then  
          begin  
              FillChar(mxlc,   SizeOf(mxlc),0);  
              mxlc.cbStruct   :=   SizeOf(mxlc);  
              mxlc.dwLineID   :=   mxl.dwLineID;  
              mxlc.dwControlType   :=   MIXERCONTROL_CONTROLTYPE_VOLUME;  
              mxlc.cControls   :=   1;  
              mxlc.cbmxctrl   :=   SizeOf(mxc);  
   
              mxlc.pamxctrl   :=   @mxc;  
              intRet   :=   mixerGetLineControls(hMix,   @mxlc,   MIXER_GETLINECONTROLSF_ONEBYTYPE);  
   
              if   intRet   =   MMSYSERR_NOERROR   then  
              begin  
                  FillChar(mxcd,   SizeOf(mxcd),0);  
                  mxcd.dwControlID   :=   mxc.dwControlID;  
                  mxcd.cbStruct   :=   SizeOf(mxcd);  
                  mxcd.cMultipleItems   :=   0;  
                  mxcd.cbDetails   :=   SizeOf(Integer);  
                  mxcd.paDetails   :=   @details;  
                  mxcd.cChannels   :=   2;  
   
                  details[0]   :=   LeftVol;  
                  details[1]   :=   RightVol;  
   
                  intRet   :=   mixerSetControlDetails(hMix,   @mxcd,MIXER_SETCONTROLDETAILSF_VALUE);  
   
                  if   intRet   <>   MMSYSERR_NOERROR   then  
                      ShowMessage('设置控制器参数错误!');  
              end  
              else  
                  ShowMessage('获得控制器信息错误!');  
          end;     //   end   左右声道  
   
   
          //   设置静音  
          if   intRet   =   MMSYSERR_NOERROR   then  
          begin  
              FillChar(mxlc,   SizeOf(mxlc),0);  
              mxlc.cbStruct   :=   SizeOf(mxlc);  
              mxlc.dwLineID   :=   mxl.dwLineID;  
              mxlc.dwControlType   :=   MIXERCONTROL_CONTROLTYPE_MUTE;  
              mxlc.cControls   :=   1;  
              mxlc.cbmxctrl   :=   SizeOf(mxc);  
              mxlc.pamxctrl   :=   @mxc;  
   
              //   获得静音控制器  
              intRet   :=   mixerGetLineControls(hMix,   @mxlc,   MIXER_GETLINECONTROLSF_ONEBYTYPE);  
   
              if   intRet   =   MMSYSERR_NOERROR   then  
              begin  
                  FillChar(mxcd,   SizeOf(mxcd),0);  
                  mxcd.cbStruct   :=   SizeOf(TMIXERCONTROLDETAILS);  
                  mxcd.dwControlID   :=   mxc.dwControlID;  
                  mxcd.cChannels   :=   1;  
                  mxcd.cbDetails   :=   SizeOf(MIXERCONTROLDETAILS_BOOLEAN);  
                  mxcd.paDetails   :=   @mcdMute;  
   
                  //   设置静音  
                  mcdMute.fValue   :=   Ord(MuteVol);  
                  intRet   :=   mixerSetControlDetails(hMix,   @mxcd,   MIXER_SETCONTROLDETAILSF_VALUE);  
   
                  if   intRet   <>   MMSYSERR_NOERROR   then  
                      ShowMessage('设置控制器参数错误!');  
              end  
              else  
                  ShowMessage('获得控制器信息错误!');  
          end;       //   end   静音  
   
          //   关闭混音器  
          intRet   :=   mixerClose(hMix);  
      end;  
  end;  
   
  end.  
  Top

51 楼jenycheng(听,雪的声音)回复于 2004-01-04 20:27:35 得分 2

晕!!!  
  到我这里就下不了了  
   
  怎么搞的啊!Top

52 楼jyh149129(风之刃)回复于 2004-01-04 20:45:40 得分 2

不错  
  好东西分享一下嘛,比如音频条码和波纹的显示Top

53 楼easyboot(易宝)回复于 2004-01-04 21:34:35 得分 2

upTop

54 楼year2000bug(江南)回复于 2004-01-04 22:19:17 得分 2

我用不了啊,  
  先是说无效浮点指针,  
  跟着说堆栈溢出.  
  最后来个非法操作。  
   
  我用的是win98.  
  Top

55 楼shinyv(看谁理我)回复于 2004-01-04 22:47:05 得分 0

漂亮,要是把源码放出来,就太好了!Top

56 楼ljt98(真水无香)回复于 2004-01-04 23:26:34 得分 0

不要放源码!!  
  可以讨论。。维护版权Top

57 楼yuehaiwuya(月海)回复于 2004-01-05 00:13:30 得分 0

niceTop

58 楼101monster(毛毛虫)回复于 2004-01-05 00:20:01 得分 0

呵呵,Good!Top

59 楼ly_liuyang(Liu Yang LYSoft http://lysoft.7u7.net)回复于 2004-01-05 00:33:07 得分 0

呵呵  
  我去看看  
   
  我都开发有好几个软件的,在http://lysoft.7u7.netTop

60 楼mmdrr()回复于 2004-01-05 01:58:51 得分 0

感觉不错Top

61 楼coreblood(I don't Know )回复于 2004-01-05 08:20:41 得分 0

看了用了,很漂亮...效果很好,不过真的很耗资源Top

62 楼viaboy(平凡)回复于 2004-01-05 09:14:51 得分 0

lookTop

63 楼goldpony(金马)回复于 2004-01-05 09:37:47 得分 0

感觉不错  
  Top

64 楼crossbow(【以无形为形】)回复于 2004-01-05 09:48:46 得分 0

在我的Win98上,菜单的字有时候竟然消失了,可能是重画的毛病吧?  
   
  Mp3解码器是你自己写的?厉害啊……Top

65 楼asir_gl(编程浪子)回复于 2004-01-05 10:59:52 得分 0

不错Top

66 楼luckyboy97(幸运男孩)回复于 2004-01-05 11:11:45 得分 0

好东西Top

67 楼hkbarton(→Beginner←)回复于 2004-01-05 12:33:21 得分 0

楼主真的很厉害,我昨天也看了,至少这个东西很多地方我写不出来(实话的说)  
   
  希望楼主继续加油!Top

68 楼softwaiter(softwaiter)回复于 2004-01-05 13:14:07 得分 0

真的很厉害,佩服佩服!!  
  继续加油啊,能不能交个朋友  
   
  MSN:iamwxm@hotmail.comTop

69 楼lzgctgc(理引商务)回复于 2004-01-05 13:54:13 得分 0

感觉不错  
  Top

70 楼noproblem12(被捡破烂的捡起的破烂)回复于 2004-01-05 14:07:45 得分 0

good!Top

71 楼crossbow(【以无形为形】)回复于 2004-01-05 14:16:35 得分 0

仔细测试了一下,解码器的效果和XAudio的差不多,和Winamp和Sonique的还有差距。质量比较差、噪音比较多的Mp3尤其明显。  
   
  Top

72 楼aaronyes(生活需要进步)回复于 2004-01-05 14:19:47 得分 0

upTop

73 楼DY2003(DY2003)回复于 2004-01-05 17:14:37 得分 0

lookTop

74 楼crossbow(【以无形为形】)回复于 2004-01-05 22:58:31 得分 0

播放FIFA99里面的asf音频出现如下错误:  
   
  Exception   EDirectShowException   in   module   ZL_MAWD.dll   at   0005795F.Top

75 楼root3646(游牧人(虫子))回复于 2004-01-06 00:11:34 得分 0

支持一下!Top

76 楼alpha15(奥法)回复于 2004-01-06 00:18:34 得分 0

慢慢看!Top

77 楼ly_liuyang(Liu Yang LYSoft http://lysoft.7u7.net)回复于 2004-01-06 01:21:52 得分 0

根据我的分析解码部分是使用别人写的可能是很大  
  写MP3的编码几乎不会用Delphi开发的,都是用VC的  
  既然是VC高手自然就会用VC写那个Player了  
   
  继续去分析  
   
  呵呵,仅是一家之言  
   
  http://lysoft.7u7.netTop

78 楼deepWATERblue(深水蓝)回复于 2004-01-06 01:40:21 得分 0

不错。测试。用delphi写的吗?Top

79 楼ehom(?!)回复于 2004-01-06 01:54:21 得分 0

解码器是用了un4seen   developments的Bass   2.0  
   
  不过把用什么开发工具作为判断是不是自己写解码部分并不恰当,我就用Delphi写过Huffman编/解码.而且网上可以找到的MP3编/解码代码基本都是纯C写的,如果要用Pascal写,基本只能自己动手了.所以如果完全用Delphi开发,而且没有用到动态链接库,基本就可以肯定是自己写的编/解码部分.用VC开发反而可以利用大量现成的代码.  
   
  不过写纯算法确实是用C爽啊,Pascal代码写起来实在太臃肿了.Top

80 楼ehom(?!)回复于 2004-01-06 02:04:56 得分 0

顺便说句,楼主这种把解码用的动态链接库文件改名隐藏起来的做法是不太合规矩的Top

81 楼amei2000go(浪子)回复于 2004-01-06 04:01:25 得分 0

我今天用它听了一天的歌了,总体感觉很好,但是还是发现了一个问题:  
  你的频谱显示太浪费资源了,大概需要使用20%左右的系统资源,这样确实不太好,应该改进一下算法,不知你是如何实现的,做这样的操作应该不需要太多的时间的  
  还有一个建议:如果软件在后台显示你可以不需要刷新显示的,希望能和你交个朋友,tquery@163.comTop

82 楼amei2000go(浪子)回复于 2004-01-06 04:14:30 得分 0

还有一个建议,君不见加载很多文件时会很慢吗?(至少我用了超过十几秒钟,实在太...)  
   
  其实解决起来很简单的,用多线程加载就好了,并且只加载当前页显示的文件,其他不显示  
  还有,在拖动文件列表时好像不太平滑,是不是那个显示文件的东东是你自己做的(有待改进)  
  希望能看到你更新的作品Top

83 楼yqhi(星晴)回复于 2004-01-06 07:31:24 得分 0

支持你!Top

84 楼mc43(火猴)回复于 2004-01-06 08:36:26 得分 0

太强了,支持楼猪。  
  像问一下你的程序在windows的任务管理器里面的字会动(像走马灯),是怎么实现的,感兴趣~Top

85 楼XXSingle(心无了然)回复于 2004-01-06 08:58:56 得分 0

用了一下,写得不错!Top

86 楼chy105(烽火必胜)回复于 2004-01-06 09:02:24 得分 0

还行阿!Top

87 楼mp2780304(嗜好者)回复于 2004-01-06 09:22:42 得分 0

Very   good!Top

88 楼crossbow(【以无形为形】)回复于 2004-01-06 10:03:09 得分 0

呵呵...Top

89 楼crossbow(【以无形为形】)回复于 2004-01-06 10:06:35 得分 0

LiuYang兄,这好像是Aspack加的壳吧?  
   
  一个人也是无法和WinAmp的30多个人相抗衡...Top

90 楼tglong(Dragon)回复于 2004-01-06 10:08:43 得分 0

不错,只是太耗资源。  
  弹出的其它界面没什么花样,与主界面有点不协调Top

91 楼Softor(Yves)回复于 2004-01-06 10:55:55 得分 0

我正在用你的播放器欣赏音乐呢!感觉很棒!期待你的正式版本!Top

92 楼net_morning(矿泉水)回复于 2004-01-06 11:06:54 得分 0

下载不了Top

93 楼laiguorong(Win Lai)回复于 2004-01-06 12:12:02 得分 0

to   yingshang   (伤影)   :  
   
  有这些方面的相关资料吗?我想要  
  我的邮箱:lai231@163.comTop

94 楼Hedonism(江悦)回复于 2004-01-06 12:33:00 得分 0

支持。UPTop

95 楼okook(一天一个愿望)回复于 2004-01-06 12:50:55 得分 0

 
   
      楼主加油:)  
   
  Top

96 楼loveghb(温柔的毒药)回复于 2004-01-06 13:04:23 得分 0

超强!!!!!!!!!!!  
  菜鸟十分汗颜!!!!!!!  
  以后多加餐饭!向高手学习!  
  :)  
  Top

97 楼huisheng(悔晟)回复于 2004-01-07 14:52:14 得分 0

不错,只是占资源太大Top

98 楼ly_liuyang(Liu Yang LYSoft http://lysoft.7u7.net)回复于 2004-01-08 00:20:55 得分 0

LY的分析结果:  
   
  ASPack保护的  
   
  ZL2比起ZL1.x就有很大进步了,我还有ZL1的SRC  
   
  ZL1.x用MMMedia组件的,到了ZL2就取消了,改为使用DLL以Plug-in的方式。  
   
  分析发现ZL_DcdMW.dll是Un4seen的DLL,从接口看,是音频处理Mixer和Decode来的,没有这个DLL,ZL就不能Run而且会有严重的AV错误,这是个要改进的地方:应该给出提示,而不是程序出现非法错误而导致无法关闭  
   
  ZL_Mp3Wav.dll是自己编写的MP3文件处理部分,使用Delphi6写的,是实现MP3文件的处理,包括FFT变换,可惜解码还是别人的。  
   
  解码器我所见的都是C版的,没见有Delphi版的。我也都用Delphi写过HuffMan编码,那个是以前多大学的作业来的。我当然知道用工具判断不是自己写解码部分是不恰当的,但是经验告诉我对于个人开发,用Delphi写主程序的人,多半不会写C版的解码器的  
   
  ZL_MAWD.dll是视频处理DLL,使用DSPack的DirectShow9播放AVI等文件的,使用的是M$的东西,不能播放Windows不支持的文件  
   
  界面上使用SUIPack,这个没有什么好说的,有Bug也是SUI的问题  
   
  程序和DLL都是Delphi6开发的,如果ZL_DcdMW.dll都是自己开发的那就真正完全是自己的技术了。  
   
  用Windows   Media   Player就知道改变其音量是不会影响系统的其他音量的,但ZL改变的是Wave通道的音量,如果能改善这个问题就好了  
   
  当Plug-in没有的时候建议显示提示窗口,不要什么反应都没有  
   
  从应用的角度来看,再做Media   Player这类软件没有什么应用的,有太多的同类软件了M$的,RealOne,WinAMP。连Media   Player   Classic都很好用,除非你的ZL有所突破,否则不会有什么人用的,想收费更加没可能  
   
  从开发的角度来看,我是非常支持的,作为技术的研究是值得支持鼓励的  
   
  总的来说,这个软件做得都很好的。对于MP3解码器,用的是第三方的DLL,但FFT的显示效果和EQ两个功能还是很有深度的,但以波形显示的效果很不理想,对比WinAMP,Media   Player就知道了,柱状图效果还是很好的,还有就是CPU资源占用率比较高,如能添加URL播放功能就更好了  
   
  另外FreeAMP是OpenSource的,但代码是C++的,作为研究还是很好的  
   
  完全是我的看法,如有不正确,欢迎指正  
   
  LYFTP  
  http://lysoft.7u7.netTop

99 楼miky(miky)回复于 2004-01-08 03:29:53 得分 0

漂亮,我喜欢,有源码更好!!Top

100 楼xiong1979(太空一号)回复于 2004-01-08 08:33:05 得分 0

很好,不知界面做的时候用做哪些工具?Top

101 楼wengj(做了两年的软件,想换个行业)回复于 2004-01-08 09:23:05 得分 0

支持网页?Top

102 楼Free123Man(Free_Man)回复于 2004-01-08 09:40:38 得分 0

真的很不错,很漂亮,对,我也觉得弹出的提示框,可以用suipack的Box组件做或自己做一个漂亮的窗体呀,协调些了,呵呵,是不?Top

103 楼stone20020830(骄阳)回复于 2004-01-08 09:55:11 得分 0

提个意见.我一见播放器就习惯性的往里面拖文件,可它非让我建个列表.对于懒鬼一族只怕有点不喜欢.希望能加入拖放功能.就更加完美了.Top

104 楼siwuge(五哥)回复于 2004-01-08 10:20:40 得分 0

收Top

105 楼hkbarton(→Beginner←)回复于 2004-01-08 15:54:06 得分 0

恩,好久不看,都分析了那么一大堆东西了呀。不过总的说来,我觉得楼主相当的不错,从技术上来看软件也还是不错。是高手哈。Top

106 楼crossbow(【以无形为形】)回复于 2004-01-09 15:59:23 得分 0

LiuYang兄,你怎么知道快速傅立叶转换的代码在ZL_Mp3Wav.dll里面啊?  
   
  Delphi确实是开发工具中的快餐,想写底层的东西很困难...FreeAmp我原来下了一个,没时间看,最后又删除了.....   @_@  
   
  忙了几天,今天才空闲下来,今天晚上好好研究研究,向LiuYang老大学习。这里我最佩服LiuYang和ehom的水平了,学习!Top

107 楼ly_liuyang(Liu Yang LYSoft http://lysoft.7u7.net)回复于 2004-01-10 00:41:13 得分 0

更正:  
  ZL2使用的界面组件应该是Dynamic   SkinForm  
  在http://www.almdev.com/可以找到  
   
  傅立叶转换的代码在ZL_Mp3Wav.dll里面我是猜想的,分析发现有一个接口名为GetFFTData  
  ,据此估计的  
   
   
  解码Dll是ZL_DcdMW.dll,其实是BASS组件  
  这里可以下载最新版本V1.5  
  http://delphi.icm.edu.pl/ftp/d30free/TBASSPlayer.zip  
   
  说明如下  
  TBASSPlayer   is   a   Delphi   component   which   can   play   WAV,   MPx(MP1   /MP2/MP3),   WMA   and   Ogg   Vorbis   files   using   BASS   sound   system   (   BASS.DLL   and   BASSWMA.DLL).   TBASSPlayer   also   can   play   other   stream   file   types   using   Winamp   2   input   plug-ins   such   as   ASF,   MID,   CDA(Audio   CD)   and   any   other   file   types   if   you   have   appropriate   plug-   ins   for   them.    
   
  更详细的看http://delphi.icm.edu.pl/ftp/d30free/TBASSPlayer.htmTop

108 楼ly_liuyang(Liu Yang LYSoft http://lysoft.7u7.net)回复于 2004-01-10 01:01:34 得分 0

Dynamic   SkinForm的Src下载页面:  
  http://www.fixdown.com/soft/9551.htmTop

109 楼nzh517(沙中泥)回复于 2004-01-10 01:18:21 得分 0

Good  
  我什么时候能达到这种程度Top

110 楼mmdrr()回复于 2004-01-10 01:42:00 得分 0

俺在使用,挺好的,有点占资源,cpu占用50%左右,但还是喜欢用,挺方便的Top

111 楼huanzhugege(http://www.blogjava.net/huanzhugege)回复于 2004-01-10 11:26:10 得分 0

发现一个bug,在“新建列表”中填入“http://www.real.com/playerplus/?lang=cn”就会报错,你应该截获这个错误Top

112 楼seeland(seeland)回复于 2004-01-10 11:28:16 得分 0

不错Top

113 楼yusi008(夜孤城)回复于 2004-01-10 11:54:23 得分 0

做的不错     就是支持的格式太少   你可以把它和realplayer帮定起来这样就可以放很多格式了Top

114 楼ly_liuyang(Liu Yang LYSoft http://lysoft.7u7.net)回复于 2004-01-10 12:16:42 得分 0

经过几天研究,都应该有个总结了  
   
  ZL2使用的是Un4Seen.com的Bass2.dll作为解码器,  
  而调用Bass2的组件也是使用第三方的TBassPlayer组件  
   
  BassPlayer组件可以调用Bass2和WinAMP2.x版本的Plug-in,功能极其强大,不只是支持MP3而已,还能支持WMA,OGG,还有WinAMP所支持的所有格式(通过WInAMP的Plug-in);BassPlayer还支持URL流播放的  
   
  ZL的作者还没有添加这些功能  
   
  而FFT变换和效果显示,EQ都是通过BassPlayer在Plug-in中实现的  
   
  BassPlayer的Demo包括有完整的功能,附加上WinAMP的Plug-in,完全拥有和WinAMP相同的功能,可惜技术还是WinAMP的;下载BassPlayer组件用一用那个Demo就知道,基本功能非常的完整  
   
  下载BassPlayer组件:http://delphi.icm.edu.pl/ftp/d30free/TBASSPlayer.zip  
   
   
  ZL2界面是组件Dynamic   SkinForm的效果,ZL2中文件nvdvd.zls其实是ZIP文件,包含Dynamic   SkinForm的SkinData的  
   
  下载Dynamic   SkinForm的破解版:http://www.fixdown.com/fixdown/download.asp?id=9551&soft=fjdown  
   
  在技术上,ZL的作者只是添加了一个播放列表和一些附加的功能,主要的功能均不是自己的技术,都是BassPlayer和Bass2.dll实现的,FFT频谱,EQ都不是作者自己开发的,但作者刻意隐藏和改名别人的组件这样的行为是非常的不负责的,不是自己写的解码器,竟然封装起来,About里面显示自己的版权。就整个软件而言,作者所做的功夫着实没有多少,与使用TMediaPlayer写的大同小异,只是BassPlayer有自己的解码器,用WinAMP的Plug-in。  
   
  我无意说作者的不是,这都是实事求是,我用几个小时的时间看这个软件,纯粹是技术上的,不存在个人攻击,请见谅了。Top

115 楼shanxing(*努力奋斗每一天(因为我是中专生)*)回复于 2004-01-10 12:33:21 得分 0

是不错Top

116 楼year2000bug(江南)回复于 2004-01-11 03:02:49 得分 0

以前曾经看过liu   yang写的sql相当的精悍。  
  没想到liu   yang的跟踪技术还是一样厉害。  
  高手啊,汗颜。。。Top

117 楼apple2008cn(笨笨--从头开始学起)回复于 2004-01-11 06:10:47 得分 0

去下载看看Top

118 楼apple2008cn(笨笨--从头开始学起)回复于 2004-01-11 06:17:25 得分 0

恩试了试不错!音质不错!是个好软件!回来和楼主交流一下!Top

119 楼ingener(祝福)回复于 2004-01-11 08:41:44 得分 0

看看先。Top

120 楼dixiao4(冰镜)回复于 2004-01-14 09:01:42 得分 0

虽然看起来不错  
  从市场角度来说是垃圾Top

相关问题

  • spirit00的软件。下载吧!!下载并提出宝贵意见者给大分!!
  • 虹阳餐饮管理软件诚邀您提供宝贵意见!
  • 虹阳餐饮管理软件诚请您提供宝贵意见!
  • 虹阳餐饮管理软件诚请您提供宝贵意见!
  • 我自己做的小软件,请大家用用,欢迎提出宝贵意见。。
  • 本人新作《合力叉车进销存软件》,希望大家踊跃测试,并提供宝贵意见。
  • 我的小软件升级了!欢迎大家下载使用,并提供宝贵意见。
  • sc.harabi.com 静候宝贵意见
  • 请大家多提宝贵意见
  • 大家多给宝贵意见建议

关键词

  • .net
  • mp3
  • win98
  • 控制器
  • 文件
  • 组件
  • winamp
  • 解码
  • 软件
  • 音量

得分解答快速导航

  • 帖主:yingshang
  • cll007
  • jiezhi
  • Shawphen2000
  • VeryOldMan
  • cll007
  • seasunsky
  • SuperGam
  • superlionet
  • Erice
  • delphipan
  • hanxian
  • xinshiji
  • haipin
  • chenylin
  • fcjg
  • fj218
  • cocoboy79
  • hkbarton
  • yctwfly
  • yuzhan
  • zzllabc
  • alexzhang00
  • ekin
  • crossbow
  • rgbwoo
  • dongdyl
  • klend
  • crossbow
  • xiaoqiang123
  • WJY2003
  • tanxj
  • tresss
  • sherry3000
  • windeflower
  • folder80
  • Qbcdb
  • ssq_td
  • dinyy
  • lightice
  • coreblood
  • Tensionli
  • sternz
  • xiaoyuer0851
  • duxbin
  • gamevale
  • jenycheng
  • jyh149129
  • easyboot
  • year2000bug

相关链接

  • Delphi类图书
  • Delphi类源码下载
  • Delphi控件下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo