• 使用SndPlaySound从内存中播放WAV


    有些时候,我们写的程序需要播放音乐,一般大家会采用以下几种方式:1.把音乐文件放置在某个特定的目录,例如Sound,WAV,Music供程序读取播放;2.使用资源来存放音乐。有些人估计也是使用这个方法的,不过大部分人可能是先从资源里把音乐文件释放出来,然后再去读取播放。我今天要介绍的方式是直接把音乐文件载入内存,然后从内存中进行读取播放。好了给代码吧:
    var
      hResInfo: THandle;
      PtrSound: Pointer;
    begin
      hResInfo := FindResource(HInstance, 'sound', 'WAV');
      hRes := LoadResource(HInstance, hResInfo);
      if hRes > 32 then
      begin
        PtrSound := LockResource(hRes);
      end;
      SndPlaySound(PtrSound, Snd_Async or Snd_Memory);
    end;
    核心代码已经给出,前提是我们必须制作资源文件,首先,我们先建立一个扩展名为rc的文件

    其中sound为资源名称,WAV资源类型,Girl.wav为音乐文件。
    然后我们将音乐文件与RC文件放置于同一个目录下,用brcc32进行编译,目录下会生成一个RES扩展名的文件,将该文件放到Delphi的项目文件夹下,在单元的implementation的{$R *.dfm}下加上{$R Girl.RES},最后编译即可。

    http://www.lsworks.net/article/1.html

  • 相关阅读:
    ByteBuffer使用实例
    Fiddler抓包显示请求时延
    手机wifi连上Fiddler后无网络问题解决
    git
    git
    Autofac使用
    Redis实战
    Redis实战
    Redis实战
    Redis实战
  • 原文地址:https://www.cnblogs.com/findumars/p/4998965.html
Copyright © 2020-2023  润新知