请问exe资源内嵌的mp3或wma,如何并且“流”的方式直接播放呢?盼赐例子(送100分):)
2009-03-13 10:26
330 查看
请问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文档。
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文档。
相关文章推荐
- 请问exe内嵌的mp3,如何直接“流”方式的播放呢?
- 请问如何强行释放所有已关闭的程序所残留的内存等资源?类似于微软的那个叫mem.exe的工具,如何入手呢?
- 如何将Debug文件夹下的资源打包成一个EXE文件直接执行
- 如何将Debug文件夹下的资源打包成一个EXE文件直接执行
- 现在介绍一种使用资源文件,将dll、ocx打包进exe,点击直接注册的例子:
- [木马]不释放资源到本地文件系统,直接运行其内嵌exe程序 卡巴竟然报毒,MSE正常
- 如何安装整个linux系统中所需要的mp3播放库插件? 可以在安装rpmfusion仓库后直接通过dnf install进行按照就可以了
- Linux(Fedora 8)下如何播放mp3,wma
- 安卓 播放MP3 实现歌词同步例子
- 如何使用DirectDraw直接显示RGB、YUV视频数据(播放yuv)
- [原创]java WEB学习笔记55:Struts2学习之路---详解struts2 中 Action,如何访问web 资源,解耦方式(使用 ActionContext,实现 XxxAware 接口),耦合方式(通过ServletActionContext,通过实现 ServletRequestAware, ServletContextAware 等接口的方式)
- DLL和EXE如何读取包含在自身的资源文件
- 如何在C#中使用内嵌资源文件(转载学习)
- as3 以编码的二进制流方式播放 mp3
- 如何使用Quartz库播放MP3歌曲文件
- MPEG简介 + 如何计算 CBR/VBR MP3 的播放时间
- 如何将exe注册为windows服务,直接从后台运行
- 如何从mp3,wma等音频文件中获取歌曲信息
- 【C#学习笔记】播放wma/mp3文件
- 如何在VC工程生成的exe当中添加不常见的资源(比如说zip包)