delphi2007 教程

delphi2007 教程

首页 新随笔 联系 聚合 管理
  1013 Posts :: 0 Stories :: 28 Comments :: 0 Trackbacks
请问exe内嵌的mp3,如何直接“流”方式的播放呢? Delphi / Windows SDK/API
http://www.delphi2007.net/DelphiMultimedia/html/delphi_20061009145524261.html
请问exe内嵌的mp3,如何直接“流”方式的播放呢?  
   
  非临时存出mp3到硬盘的方式,而是直接的“流”播放。文件流~内存流~  
   
   
  希望哪位大侠赐一个例子阿,谢谢:)

100分奉送:)

我看这个问题非常难,你出1000元RMB看有没有人给答案  
   
  ------------------------------------------------------- 本回复由大傻的破玩意儿【CSDN's   forum   Explorer】完成! 大傻的破玩意儿,今天你用了木有   !! 软件功能强大,速度超快!!支持中... 软件下载地址:http://CoolSlob.ys168.com

说的更具体些:我是自己制作了一个资源内嵌Mp3的程序,现在需要   流方式的   播放程序中资源文件内的这个mp3,可是Tmediaplayer这些组件,都没有像   图片组件那样的“loadFromSream”的调用“流”的方法。所以,现在很犯愁阿:(  
 

可以实现的,我在哪本书上看到过,找到后告诉你,不需要犯愁

还要我觉的你没有必要非用Tmediaplayer这样的组件,播放声音嘛,直接调用API吧,文件又小又精致

改用wav格式,可用系统函数playsound直接播放

“可以实现的,我在哪本书上看到过,找到后告诉你,不需要犯愁”-谢谢Ayx_hys()   啊:)  
   
  直接调用API播放声音,具体应该怎么作呢?

用个笨方法吧  
  建立一个模拟网络,发送流  
   
  以下一个例子是模拟网络播放资源中的SWF,你可以试试合不合适  
  http://www.2ccc.com/article.asp?articleid=3529

谢谢   bo524(风铃夜思雨)     :)    
   
  正在下载,今晚研究一下

“改用wav格式,可用系统函数playsound直接播放”-这个,今下午做了个试验,我以前的Mp3   音乐   4.6M,转化为WAV后,这个音乐文件达到可怕的   135M   !  
   
  当然,这个   135   M的WAV资源内嵌EXE,流播放,是没问题的。但实际应用,这样就不行了。  
   
 

“模拟网络播放资源中的SWF”-今晚实验过,内嵌的SWF,播放后,还是存储到了客户硬盘的IE缓存文件夹内了。  
   
  如何,能让IE缓存不自动保存内嵌的FLASH呢....

我有一个放MP3的DLL  
  可以流播放  
   
  以下是测试写的代码  
  Procedure   TFrmMain.FormCreate(Sender:   TObject);  
  Var  
      Res:   TResourceStream;  
  Begin  
      If   (HIWORD(BASS_GetVersion)   <>   BASSVERSION)   Then  
      Begin  
          MessageBox(0,   'An   incorrect   version   of   BASS.DLL   was   loaded',   Nil,   MB_ICONERROR);  
          Halt;  
      End;  
      If   (Not   BASS_Init(-1,   44100,   0,   Handle,   Nil))   Then  
      Begin  
          MessageBox(Handle,   '无法初始化设备!',   '错误',   MB_ICONHAND);  
          Halt;  
      End;  
      Res   :=   TResourceStream.CreateFromID(HInstance,   1,   'MP3');  
      HS   :=   BASS_StreamCreateFile(true,   Res.Memory,   0,   Res.Size,   BASS_SAMPLE_MONO);  
      Res.Free;  
  End;  
   
  Procedure   TFrmMain.FormDestroy(Sender:   TObject);  
  Begin  
      BASS_Free;  
  End;  
   
  Procedure   TFrmMain.CmdPlayClick(Sender:   TObject);  
  Begin  
      BASS_ChannelPlay(HS,   False);  
  End;

可否一赐   这个流播放MP3的   dll文件啊     :)

DLL与示例文件例已发到你的信箱了

直接不行,难道还不能先保存出来再播放吗?

十分感谢   laihongbo524(风铃夜思雨)   ,已经收到了   :)

文件流还不简单?  
  用LoadResource获取资源的全局句柄,  
  用GlobalLock锁定此句柄取得指针,  
  然后就用TFileStream.Read方法读取数据。  
  播放。  
 

学习

因为释放出来!试想“要是MP3大的》》你的硬盘”你就得晕!  
  国外有MP3————WAVE做的。  
  可以实现但----这也太贱了吧!楼主不是想白得到就好。。。。吧

posted on 2009-03-13 10:30 delphi2007 阅读(220) 评论(0)  编辑 收藏 引用
只有注册用户登录后才能发表评论。