- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
如何在C#中播放“新邮件”的系统声音?这也称为“通知”声音。
在 Win32 中,这将类似于
sndPlaySound('Notify', (SND_ALIAS or SND_ASYNC));
那么您如何在 .Net 中做到这一点?我知道你能做到
System.Media.SystemSounds.Asterisk.Play();
但是那里的声音非常有限,只有五种声音 - 不包括用户设置为新邮件声音的任何声音。
当我收到新邮件并播放该文件时,我可以找出正在播放哪个 .wav 文件,但当用户的声音方案更改时,它不会更新。
我最终做了什么:
我没有播放系统声音,而是将 wav 文件作为资源嵌入到应用程序中,并使用 System.Media.SoundPlayer
播放它
最佳答案
一种选择是直接将 PInvoke 调用到 sndSound API 中。这是该方法的 PInvoke 定义
public partial class NativeMethods {
/// Return Type: BOOL->int
///pszSound: LPCWSTR->WCHAR*
///fuSound: UINT->unsigned int
[System.Runtime.InteropServices.DllImportAttribute("winmm.dll", EntryPoint="sndPlaySoundW")]
[return: System.Runtime.InteropServices.MarshalAsAttribute(System.Runtime.InteropServices.UnmanagedType.Bool)]
public static extern bool sndPlaySoundW([System.Runtime.InteropServices.InAttribute()] [System.Runtime.InteropServices.MarshalAsAttribute(System.Runtime.InteropServices.UnmanagedType.LPWStr)] string pszSound, uint fuSound) ;
/// SND_APPLICATION -> 0x0080
public const int SND_APPLICATION = 128;
/// SND_ALIAS_START -> 0
public const int SND_ALIAS_START = 0;
/// SND_RESOURCE -> 0x00040004L
public const int SND_RESOURCE = 262148;
/// SND_FILENAME -> 0x00020000L
public const int SND_FILENAME = 131072;
/// SND_ALIAS_ID -> 0x00110000L
public const int SND_ALIAS_ID = 1114112;
/// SND_NOWAIT -> 0x00002000L
public const int SND_NOWAIT = 8192;
/// SND_NOSTOP -> 0x0010
public const int SND_NOSTOP = 16;
/// SND_MEMORY -> 0x0004
public const int SND_MEMORY = 4;
/// SND_PURGE -> 0x0040
public const int SND_PURGE = 64;
/// SND_ASYNC -> 0x0001
public const int SND_ASYNC = 1;
/// SND_ALIAS -> 0x00010000L
public const int SND_ALIAS = 65536;
/// SND_SYNC -> 0x0000
public const int SND_SYNC = 0;
/// SND_LOOP -> 0x0008
public const int SND_LOOP = 8;
/// SND_NODEFAULT -> 0x0002
public const int SND_NODEFAULT = 2;
}
关于c# - .Net中如何播放 "New Mail"系统音?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/695241/
我是 Arduino 的新手(因为这个周末我必须学习它来完成一个学校项目)并且我无法让我的压电扬声器为闹钟发出声音。当草图运行时,一切正常。 LED 闪烁,但蜂鸣器不发声,这很奇怪,因为 LED 和蜂
我想知道是否有人遇到过在 iPhone SDK 中生成铃声的方法。我正在尝试生成 DTMF 音调,但似乎找不到任何实质性内容。我还希望能够指定播放音调的时间(即模拟按住按钮而不是简单地按下按钮....
我正在尝试制作一个可以在 Octave 音阶中水平滚动的钢琴应用程序。下面是另一个我尝试做的钢琴应用程序的示例。箭头在钢琴上滚动 Octave 。我已经了解了scrollview,但是似乎只允许通过滑
我正在我的 Android 应用程序中使用文本转语音 - TTS。我已经粘贴了下面的代码。TTS 工作正常,但是它说的语音/文本不是很清楚。它说的真的快速,以至于它不是完全可以理解的.. 我尝试设置
我正在调用一个带有号码的通话应用程序,然后通过 发送 dtmf 音 String number = "tel:+1234567,890#"; Intent c1 = new Intent(androi
我正在开展一个项目,该项目要求我的应用能够在通话期间以语音的上行链路频率发送 DTMF 音。 我的两个条件是: 我们不使用定制的 Android 平台 我们不需要root手机 我花了几天时间做功课,并
我需要制作一个IVR -auto dialer应用程序,它 => 调用免费电话 => 然后选择一个选项继续 => 然后输入一些代码 => 然后几秒钟后(一些广告/说 30 秒)需要输入另一个选项 前三
在我的 Twilio基于应用程序我通过 Twilio REST 创建拨出电话API。 当目标方响应时,我将他/她放到最近创建的 session 中。 在让他/她参加 session 之前,如何播放特定
Twilio 未从 Skype 检测到我的 DTMF 音。 我们用 twilio 建立了一个 IVR 系统,客户必须输入一个 7位客户编号。 我们的一些客户使用 voip 电话, 因此我们需要确保 t
我想在我的应用程序中以编程方式发送DTMF 铃声。在搜索时我找到了一个方法 public void playDtmfTone(字符数字) 这是 google 在 android 中发送 DTMF 的新
我读过一些有关 Android 中 DTMF 的文章。我想不可能通过流式传输 .wav 文件(或其他格式)进行自动电话调用并检测其他人(调用接收者)的输入。 我想制作一个应用程序来调用我/或其他人,并
我是一名优秀的程序员,十分优秀!