【Delphi】让APP“鸡鸣鸟叫”(同时支持ios\android\windows\macos)

在用Delphi开发FMX程序的时候,有时我们需要程序能够发出提示声,例如:当用户读卡成功的时候发出一声清脆的鸟叫声,提示读卡成功;当用户切换页面的时候发出一声柔和的翻书声,提示用户,当程序处于非活动状态的时候提示用户一声程序已经失活等等。总之,让FMX开发的APP能够随愿所控的发出我们期望的提示声(或者音乐)是一个需求。本文介绍一种同时支持FMX的四种平台(iOS、Android、Windows、macos)声音控制方法。

第一步:准备好音频资源文件,需要 .wav 文件(一个一个的音频文件,根据需要提供);

第二步:引入基础音频发声控制( uAudioManager.pas)单元;

第三步:初始化音频资源,就是把第一步准备的资源文件初始化好,然后就可以在程序中任意使用;

提示以下演示步骤是在 Delphi 11.1 环境下,其它版本类似

一、准备音频资源文件:

        我在本文中准备了4种音频文件,分别是:

序号音频文件说明
0OCRSound.wav读卡成功声音,索引:0
1ShutterSound.wav快门声音,索引:1
2KeySound.wav键盘按键声音,索引:1
3BirdSound.wav页面切换声音(鸟叫),索引:2

为了方便,四个音频文件都在原程序中的目录\Sound下。

二、新建一个delphi的演示工程文件,选择空程序,命名为:Delphi_Sound.dpr

第一步:创建空白新工程文件

 第二步:将音频文件添加到程序资源中,选择 Project -> Resources and Images 菜单

选择【Add...】按键

切记右下角文件类型选择 Any file(*),否则看不到音频文件

逐个文件加入到程序的资源中。注意将资源标识更改成文件名,中间的.替换成下划线,因为资源标识中不允许出现小点。

 至此,资源文件已经添加到了程序中,以后程序中将会始终包含这四个文件。

 第三步:添加程序释放资源函数

在程序的主窗体中增加释放资源的函数:ReleaseFile_FromResource

procedure TForm1.ReleaseFile_FromResource(ResFileName, ReleaseFile: string;
  isOverride: Boolean);
var
  ResName: string;
  ResStream: TResourceStream;
begin
  // 如果不需要覆盖,而且已经存在,则直接退出
  if FileExists(ReleaseFile) then
    if not isOverride then
      Exit;
  // 资源文件名称
  ResName := ResFileName;
  // 如果资源文件不存在,则直接退出
  if FindResource(HInstance, PChar(ResName), RT_RCDATA) = 0 then
    Exit;

  // 释放资源文件
  ResStream := TResourceStream.Create(HInstance, ResName, RT_RCDATA);
  try
    ResStream.SaveToFile(ReleaseFile);
  finally
    ResStream.Free;
  end;
end;

第四步:引入 uAudioManager.pas 单元文件

该文件是播放声音的基础单元,属于 Delphi 官方出品!

uses
  System.IOUtils,  //这个单元也需要
  uAudioManager,   //引入该单元

第五步:释放程序的中资源文件到本地目录中,同时添加到播放目录

  //1. 释放声音资源
  G_AudioM := TAudioManager.Create;
  AddSound('OCRSound_wav','OCRSound.wav');      //OCR 识别成功声音: 0
  AddSound('Shutter_wav','ShutterSound.wav');   //快门声音: 1
  AddSound('KeySound_wav','KeySound.wav');      //按键声音: 2
  AddSound('BirdSound_wav','BirdSound.wav');    //鸟叫声音-切换界面: 3

第六步:分别选择不同的平台编译(Windows、Android、IOS、MACOS)。

 

  

 

 

 总结:

1. 需要使用uAudioManager.pas单元。这个单元中定义了TAudioManager对象;

2. 增加声音资源文件:TAudioManager.AddSound(FileName);

3. 播放声音,可以根据索引号,也可以根据文件名称:TAudioManager.PlaySound(索引号或者文件名)

 4. 关于资源文件,可以在 Project -> Resources and Images 菜单中增加,也可以在 Project -> Deployment 菜单中增加,区别是,前者只是简单的将资源包含在可执行文件中,后者不但包含在可执行文件中,同时会在执行时释放在对应的目录中;另外前者对于所有平台都可以,后者对于Windows程序的Normal方式不起作用,只有在Application Store模式下有效,当前大家使用的基本上都是Normal方式,所以本文选择了前者。实际上根据情况可以选择不同的资源加载方式。

 

下载:

1. 源文件(包含声音资源文件)下载需要5分,无积分可联系作者发给你);

2. 执行程序下载(包含windows EXE文件和Android 的APK文件

 

有技术问题或者无法下载联系:

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

海纳老吴

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值