delphi2007 教程

delphi2007 教程

首页 新随笔 联系 聚合 管理
  1013 Posts :: 0 Stories :: 28 Comments :: 0 Trackbacks
请问exe资源内嵌的mp3或wma,如何并且“流”的方式直接播放呢?盼赐例子(送100分):) Delphi / Windows SDK/API
http://www.delphi2007.net/DelphiMultimedia/html/delphi_20061009145227262.html
请问如何exe内嵌mp3或wma,并且“流”的方式直接播放呢?盼赐例子(送100分):)  
   
  传统的临时存出mp3到硬盘的方法,我找到很多了,但是唯独   用流的方式,直读音频并且播放的教程例子却没有。  
   
  是需要用文件流,内存流的方式吧?  
   
  可如何读取流的音频呢?mediaplay不支持读取“流”  
   
  哪一个组件,可以像图片bmp那样,“loadformStream”   呢?  
   
  期待直接例子,谢谢啦!:)   100分封送

呵,都出200分了,可见很急了不是,用API吧,很管用的,照我说的没错

没有玩过,学习~~~~

改用wav格式,可用系统函数playsound直接播放  
  PlaySound('文件资源名',HInstance,SND_RESOURCE);

可用豪杰软件把mp3格式转为wav格式

1.采用楼上的方法,  
   
  2.是否可以考虑,将exe中的mp3资源导出到硬盘上,再播放mp3文件呢??

mark

"用API吧,很管用的,照我说的没错"  
   
  --用哪个API啊?可否详细说一下呢:)  
   
  WAV的方式,我都掌握的。但目前,需要Mp3,或者wma的格式。  
   
  “将exe中的mp3资源导出到硬盘上,再播放mp3文件”-目前,领导要求不能在客户端硬盘上留下任何的“痕迹”,所以还是要用   流啊   ...可流应该怎样用呢?  
   
  WAV流的介绍很多,但是Mp3的调用,却基本没有

UP   :)

总结上面的回答:WAV格式的资源可以直接播放,MP3格式的资源不可以直接播放。  
  变通的方法:讲MP3格式的资源在内存里转换成WAV格式,直接播放。

学习

我有一个放MP3的DLL  
  可以流播放  
  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;  
 

对于分帧的MPEG音频或视频,一般可以通过搜索相关的帧头的特定信息来取得数据。具体请参见相关的RFC文档。

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