怎样把MP3打包近EXE文件,不用按路径读取MP3文件

解决方案 »

  1.   

    回答和楼上的近似,给你个类似的例子
    通常在Delphi的应用程序中,我们会调用到很多的资源,例如图片,动画(AVI),声音,
    甚至于别的执行文件。当然,把这些资源分布到不同的目录不失为一个好办法,但是有没
    有可能把这些资源编译成标准的windows资源从而链接到一个执行文件里面呢? 
    我们可以自己做一个RC文件,例如 sample.rc ,RC文件其实就是一个资源文件的描述文本,
    通过“记事本”程序创建就行了。然后可以输入一些我们要定义的资源,例如:
    MEN BITMAP c:\bitmap\men.bitmap
    ARJ EXEFILE c:\arj.exe
    MOV AVI c:\mov.avi
    然后用BRCC32把这个RC文件编译成sample.res(真正的资源文件)。 
    在Delphi的工程文件中使用 $R 编译指令让Delphi包括资源到EXE文件里面。
    {$R sample.res}
    这样我们就可以在这个单一的执行文件中调用资源了。举例如下:
    EXEFILE:
    procedure ExtractRes(ResType, ResName, ResNewName : String);
    var 
    Res : TResourceStream; 
    begin
    Res := TResourceStream.Create(Hinstance, Resname, Pchar(ResType)); Res.SavetoFile(ResNewName);
    Res.Free; 
    end;AVI:procedure LoadAVI;
    begin
    {Avi1是一个TAnimate类}
    Avi1.ResName:='AVI';
    Avi1.Active:=True;
    end; 
      

  2.   

    将mp3 打包成 exe 到底划算不划算啊 ?  
    我觉得mp3格式的文件应该需要专门的解码代码吧 也就是你的程序中 至少应该有一个解释mp3 格式的控件 比如说是 wm player的 解码器之类的东西 哪位大侠知道 烦请告诉一声 我也很想知道这个问题的答案
      

  3.   

    ……solokey(风语花开-永远的菜鸟)说得很清楚了。用资源流就行了,紧紧是存AVI而已,你把扩展名改成Mp3不就得了!都是二进制的文件,有区别吗?另外,他提出的方法你尝试过了吗??????????我请问你……
      

  4.   

    http://www.tonixsoft.com/index.php?mmenu_id=4&smenu_id=0025MiniPlayer
      

  5.   

    我贴的就是使用资源文件的呀!!只不过基于directshow的限制只能在运行时生成临时文件了,用sndplayysound()函数的话可以传内存指针的。
      

  6.   

    我看到一个帖子,模仿了一下,程序是可以编译通过,但没有声音,
    我需要使用资源文件播放MP3,不知谁能给个完整的 pas文件,多谢了!
      

  7.   

    就是这个帖子
    http://expert.csdn.net/Expert/topic/2484/2484407.xml?temp=2.962893E-02