两种方式:

  一、简单直接  

    

uses MMSystem;

procedure TFmSound.playBtnClick(Sender: TObject);
begin
PlaySound(PChar('./sound.wav'),0,SND_NODEFAULT or SND_ASYNC);
end;

  二、写入资源文件

  参考资源文件的规则来编写rc文件,1)编写.RC文件   
    
    .RC文件是资源的源文件,编译器也就编译这个文件,生成.RES的   
    
    首先在我们的项目子目录中建立一个纯文本文件,起名叫   
    
    voice.rc,文件中添加一行内容为:

   VOICE WAV   ****.WAV

  其中****.WAV为你需要的声音文件

  然后编译它   
    在DOS的提示符下打   BRCC32  voice.RC  没报错就没问题!可以看到对应的目录下会有voice.RES文件,接着在你的工程中添加一行指令:

  {$R voice.res}

  然后添加如下函数并调用就可以了:

  

procedure TFmSound.voiceStart(const resName, resType: string);
var
voiceRes:Pointer;
begin
voiceRes:=Pointer(FindResource(hInstance,PChar(resName),PChar(resType)));
if voiceRes<>nil then begin
voiceRes:= Pointer(LoadResource(hInstance, HRSRC(voiceRes)));
if voiceRes<>nil then voiceRes:=LockResource(HGLOBAL(voiceRes));
sndPlaySound(voiceRes,SND_MEMORY or SND_NODEFAULT or SND_ASYNC);
UnlockResource(HGLOBAL(voiceRes));
FreeResource(HGLOBAL(voiceRes));
end; (*
SND_SYNC = 0; {同步播放, 程序须等到播放完毕才向下执行}
SND_ASYNC = 1; {异步播放, 在函数返回之后开始播放, 不影响程序继续执行}
SND_NODEFAULT = 2; {声音文件缺失时, 函数自动返回不播放默认声音}
SND_MEMORY = 4; {播放内存中的声音, 譬如资源文件中的声音}
SND_LOOP = 8; {循环播放, 需要和 SND_ASYNC 组合使用}
SND_NOSTOP = 16;{如果当前正在播放声音, 立即返回 False}
SND_APPLICATION
用应用程序指定的关联来播放声音。 SND_ALIAS
pszSound参数指定了注册表或WIN.INI中的系统事件的别名。 SND_ALIAS_ID
pszSound参数指定了预定义的声音标识符。 SND_ASYNC
用异步方式播放声音,PlaySound函数在开始播放后立即返回。 SND_FILENAME
pszSound参数指定了WAVE文件名。 SND_LOOP
重复播放声音,必须与SND_ASYNC标志一块使用。 SND_MEMORY
播放载入到内存中的声音,此时pszSound是指向声音数据的指针。 SND_NODEFAULT
不播放缺省声音,若无此标志,则PlaySound在没找到声音时会播放缺省声音。 SND_NOSTOP
PlaySound不打断原来的声音播出并立即返回FALSE。 SND_NOWAIT
如果驱动程序正忙则函数就不播放声音并立即返回。 SND_PURGE
停止所有与调用任务有关的声音。若参数pszSound为NULL,就停止所有的声音,否则,停止pszSound指定的声音。 SND_RESOURCE
pszSound参数是WAVE资源的标识符,这时要用到hmod参数。 SND_SYNC
同步播放声音,在播放完后PlaySound函数才返回。
*)
end;

其中的两个参数分别是 资源文件标志符号的名称,就是上面的 VOICE,另一个参数则是资源的类型:WAV

参考:https://www.cnblogs.com/findumars/p/6863651.html

Delphi播放铃声的更多相关文章

  1. iOS播放铃声及震动,适用于扫描、新消息等

    iOS播放铃声或者设置震动实现:   铃声:     SystemSoundID soundID = 1007;     AudioServicesPlaySystemSound(soundID); ...

  2. C# 播放铃声最简短的代码实现方式

    因为只是做一个软件的闹铃播放效果,到网上找的时候试了几种,哎,都失败了,而且代码挺杂的,最终一句搞定了: 1         // 窗体加载事件 2         private void Time ...

  3. android 闹钟提醒并且在锁屏下弹出Dialog对话框并播放铃声和震动

    android 闹钟提醒并且在锁屏下弹出Dialog对话框并播放铃声和震动            1.先简单设置一个闹钟提醒事件: //设置闹钟 mSetting.setOnClickListener ...

  4. Android简单的利用SoundPool进行播放铃声的实例代码

    MainActivity.java package com.example.pengdonglin.soundpool_demo; import android.annotation.Suppress ...

  5. Android 4.3实现类似iOS在音乐播放过程中如果有来电则音乐声音渐小铃声渐大的效果

    目前Android的实现是:有来电时,音乐声音直接停止,铃声直接直接使用设置的铃声音量进行铃声播放. Android 4.3实现类似iOS在音乐播放过程中如果有来电则音乐声音渐小铃声渐大的效果. 如果 ...

  6. 如何编写程序设置Android来电铃声

    我们在拿到新手机后通常会为其设置来年铃声,那么怎样通过代码来设置Android来电铃声,本文就为大家实例讲解下. 1.如果读到的是音频文件路径,需要先将音乐文件插入到多媒体库. Java代码 //设置 ...

  7. Android音频开发之——如何播放一帧音频

    本文重点关注如何在Android平台上播放一帧音频数据.阅读本文之前,建议先读一下<Android音频开发(1):基础知识>,因为音频开发过程中,经常要涉及到这些基础知识,掌握了这些重要的 ...

  8. 【转】Android播放音频MediaPlayer的几种方式介绍

    接下来笔者介绍一下Android中播放音频的几种方式,android.media包下面包含了Android开发中媒体类,当然笔者不会依次去介绍,下面介绍几个音频播放中常用的类: 1.使用MediaPl ...

  9. Android中播放音乐的几种方式

    前言 前几天一直在研究RxJava2,也写了记录了几篇博客,但因为工作任务原因,需要研究音频相关的知识,暂时放下Rxjava,本文的demo中,MediaPalyer 部分使用RxJava编写一点逻辑 ...

  10. 【Android】播放音频的几种方式介绍

    接下来笔者介绍一下Android中播放音频的几种方式,android.media包下面包含了Android开发中媒体类,当然笔者不会依次去介绍,下面介绍几个音频播放中常用的类: 1.使用MediaPl ...

随机推荐

  1. JSP第九次作业

    1.建库,建表2个用户表(id,用户名,密码)邮件表(id,发件人,收件人,标题,内容,发送时间,状态) 2.建model层entity,dao包 3.登陆,注册,登陆后显示全部邮件 dao 1 pa ...

  2. saas架构之druid解析表名

    public void preHandle(BoundSql boundSql, RequestEntity requestEntity) { System.out.println("要执行 ...

  3. RestTemplate的超全讲解(全)转

    RestTemplate的超全讲解(全)转 https://blog.csdn.net/weixin_47872288/article/details/121842374 (81条消息) RestTe ...

  4. CSS特效集锦(9款 , 总有一款是你喜欢的)

    主要是: 穿越时空特效, 图片放大镜, 3D相册, 立方体相册, 昼夜更替特效, 飘雪, 七彩雨, 签名生成器, 水波纹动画等 代码部分 <section> <div class=& ...

  5. fiddler的简单使用

    一.fiddler接口测试介绍 二.fiddler过滤器的使用 fiddler可以指定只抓哪些包,通过filters实现 如果需要抓取多个网站,各个需要抓取的网站之间用分号隔开 三.fiddler抓取 ...

  6. 如何使用 ArrayPool

    如果不停的 new 数组,可能会造成 GC 的压力,因此在 aspnetcore 中推荐使用 ArrayPool 来重用数组,本文将介绍如何使用 ArrayPool. 使用 ArrayPool Arr ...

  7. orw入门报告

    orw(沙箱逃逸) 现在有很多程序在运行时禁用了系统函数,均采用了沙箱技术开启了沙箱保护,我们不能正常的get shell,只能用ROP链来调用其他的函数,例如read,write来把flag打印出来 ...

  8. JZOJ 5348. 【NOIP2017提高A组模拟9.5】心灵治愈

    题目大意 求 \(b\) (正整数集合)使得 \(\sum_{i=1}^{n+1} a_i \times b_i = 1\) 其中给定 \(b_{n+1}=m\) 且为 \(b\) 中最大值 \(1 ...

  9. 探索 C 语言的递归函数

    <C Primer Plus>函数章节:递归函数.结合 Visual Studio 调试理解 C 语言的递归函数,下面是书上一模一样的代码,贴在这里: #include<stdio. ...

  10. kubernetes client-go功能介绍

    原味地址 https://haiyux.cc/2023/02/26/k8s-client-go/ client-go是什么? client-go是Kubernetes官方提供的Go语言客户端库,用于与 ...