您的位置:首页 > 其它

请问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文档。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐