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 ...
随机推荐
- 和ChatGPT聊了一会天它的学习反映能力惊呆了我
我:用java写一段玫瑰花 ChatGPT:您可以使用 Java 绘制玫瑰花.以下是一段代码: import java.awt.*; import javax.swing.*; public clas ...
- Spring 01 统一资源加载策略 Resource和ResourceLoader
转:https://www.cnblogs.com/loveLands/articles/10797772.html 1 Resource统一资源 1.1 简介 处理外部资源是很繁琐的事情,我们可能需 ...
- 远程控制 todesk
最近发现的一个好用的远程连接软件 便是近些年推出来的 todesk 虽然qq的远程 和 向日葵的 远程连接也都可以达到我要实现的效果 但是体验起来的话 我个人还是觉得 todesk更好用一些 下载地址 ...
- C#获取html标签内容的方法
C# 获取html标签内容的方法: /// <summary> /// 获取html网页标签内容 /// 例如:<span class="index_infoItem__E ...
- nodejs 环境变量配置
1.下载 下载地址: https://nodejs.org/zh-cn/download/ 2.安装 安装一直下一步即可,建议安装路径不要包含中文 3.环境变量配置 1)右键[我的电脑],点击[属性] ...
- STM32F1库函数初始化系列:DMA—ADC采集
1 void ADC_Configure(void) 2 { 3 ADC_InitTypeDef ADC_InitStructure; 4 GPIO_InitTypeDef GPIO_InitStru ...
- Zstack和vmware的初步印象对比
先不说话,直接上截图吧,vmware的: zstack的: 读者不知道看出什么名堂没有?把浏览器缩放调到50%,vmware的产品线两页截屏还装不下:zstack虽然也要两屏,但都是块块,大致数了数, ...
- EPICS Archiver Appliance在Centos7的定制部署
EPICS Archiver Appliance的定制部署1 EPICS Archiver Appliance的定制部署2 上面两篇是在Centos8下成功,后来又想在Centos7下跑成功,按上面的 ...
- 英国学者在真实世界早期RA队列研究中发现较高比例的临床缓解患者仍存在能量多普勒超声活性
标签: 类风湿关节炎; 目标治疗策略; 能量多普勒活性; 预测因子 英国学者在真实世界早期RA队列研究中发现较高比例的临床缓解患者仍存在能量多普勒超声活性 电邮发布日期:2016年4月6日 本研究的重 ...
- CF818G - Four Melody
题意:对于一个序列,令一个 \(melody\) 为一个子序列满足子序列的相邻两项相差 \(1\) 或者模 \(7\) 同余.现在提取四个不重合的 \(melody\),求最长总长度. 我们先考虑暴力 ...