Delphi播放铃声
两种方式:
一、简单直接
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播放铃声的更多相关文章
- iOS播放铃声及震动,适用于扫描、新消息等
iOS播放铃声或者设置震动实现: 铃声: SystemSoundID soundID = 1007; AudioServicesPlaySystemSound(soundID); ...
- C# 播放铃声最简短的代码实现方式
因为只是做一个软件的闹铃播放效果,到网上找的时候试了几种,哎,都失败了,而且代码挺杂的,最终一句搞定了: 1 // 窗体加载事件 2 private void Time ...
- android 闹钟提醒并且在锁屏下弹出Dialog对话框并播放铃声和震动
android 闹钟提醒并且在锁屏下弹出Dialog对话框并播放铃声和震动 1.先简单设置一个闹钟提醒事件: //设置闹钟 mSetting.setOnClickListener ...
- Android简单的利用SoundPool进行播放铃声的实例代码
MainActivity.java package com.example.pengdonglin.soundpool_demo; import android.annotation.Suppress ...
- Android 4.3实现类似iOS在音乐播放过程中如果有来电则音乐声音渐小铃声渐大的效果
目前Android的实现是:有来电时,音乐声音直接停止,铃声直接直接使用设置的铃声音量进行铃声播放. Android 4.3实现类似iOS在音乐播放过程中如果有来电则音乐声音渐小铃声渐大的效果. 如果 ...
- 如何编写程序设置Android来电铃声
我们在拿到新手机后通常会为其设置来年铃声,那么怎样通过代码来设置Android来电铃声,本文就为大家实例讲解下. 1.如果读到的是音频文件路径,需要先将音乐文件插入到多媒体库. Java代码 //设置 ...
- Android音频开发之——如何播放一帧音频
本文重点关注如何在Android平台上播放一帧音频数据.阅读本文之前,建议先读一下<Android音频开发(1):基础知识>,因为音频开发过程中,经常要涉及到这些基础知识,掌握了这些重要的 ...
- 【转】Android播放音频MediaPlayer的几种方式介绍
接下来笔者介绍一下Android中播放音频的几种方式,android.media包下面包含了Android开发中媒体类,当然笔者不会依次去介绍,下面介绍几个音频播放中常用的类: 1.使用MediaPl ...
- Android中播放音乐的几种方式
前言 前几天一直在研究RxJava2,也写了记录了几篇博客,但因为工作任务原因,需要研究音频相关的知识,暂时放下Rxjava,本文的demo中,MediaPalyer 部分使用RxJava编写一点逻辑 ...
- 【Android】播放音频的几种方式介绍
接下来笔者介绍一下Android中播放音频的几种方式,android.media包下面包含了Android开发中媒体类,当然笔者不会依次去介绍,下面介绍几个音频播放中常用的类: 1.使用MediaPl ...
随机推荐
- JSP第九次作业
1.建库,建表2个用户表(id,用户名,密码)邮件表(id,发件人,收件人,标题,内容,发送时间,状态) 2.建model层entity,dao包 3.登陆,注册,登陆后显示全部邮件 dao 1 pa ...
- saas架构之druid解析表名
public void preHandle(BoundSql boundSql, RequestEntity requestEntity) { System.out.println("要执行 ...
- RestTemplate的超全讲解(全)转
RestTemplate的超全讲解(全)转 https://blog.csdn.net/weixin_47872288/article/details/121842374 (81条消息) RestTe ...
- CSS特效集锦(9款 , 总有一款是你喜欢的)
主要是: 穿越时空特效, 图片放大镜, 3D相册, 立方体相册, 昼夜更替特效, 飘雪, 七彩雨, 签名生成器, 水波纹动画等 代码部分 <section> <div class=& ...
- fiddler的简单使用
一.fiddler接口测试介绍 二.fiddler过滤器的使用 fiddler可以指定只抓哪些包,通过filters实现 如果需要抓取多个网站,各个需要抓取的网站之间用分号隔开 三.fiddler抓取 ...
- 如何使用 ArrayPool
如果不停的 new 数组,可能会造成 GC 的压力,因此在 aspnetcore 中推荐使用 ArrayPool 来重用数组,本文将介绍如何使用 ArrayPool. 使用 ArrayPool Arr ...
- orw入门报告
orw(沙箱逃逸) 现在有很多程序在运行时禁用了系统函数,均采用了沙箱技术开启了沙箱保护,我们不能正常的get shell,只能用ROP链来调用其他的函数,例如read,write来把flag打印出来 ...
- JZOJ 5348. 【NOIP2017提高A组模拟9.5】心灵治愈
题目大意 求 \(b\) (正整数集合)使得 \(\sum_{i=1}^{n+1} a_i \times b_i = 1\) 其中给定 \(b_{n+1}=m\) 且为 \(b\) 中最大值 \(1 ...
- 探索 C 语言的递归函数
<C Primer Plus>函数章节:递归函数.结合 Visual Studio 调试理解 C 语言的递归函数,下面是书上一模一样的代码,贴在这里: #include<stdio. ...
- kubernetes client-go功能介绍
原味地址 https://haiyux.cc/2023/02/26/k8s-client-go/ client-go是什么? client-go是Kubernetes官方提供的Go语言客户端库,用于与 ...