• Windows Mobile 播放声音文件


    当发生某些事件的时候,播放提示音提醒用户。

    方法一:

    [DllImport("coredll.dll")]
    private static extern bool PlaySound(string pszSound, IntPtr hmod, UInt32 fdwSound);

    /// <summary>
    /// 测试方法
    /// </summary>
    private static void PlayScheduleAlarmSound()
    {
    string file = @"Windows\alarm.wav";
    PlaySound(file, IntPtr.Zero,
    1);
    }

    方法二:

    public class Sound
    {
    private byte[] m_soundBytes;
    private string m_fileName;

    private enum Flags
    {
    SND_SYNC
    = 0x0000, /* play synchronously (default) */
    SND_ASYNC
    = 0x0001, /* play asynchronously */
    SND_NODEFAULT
    = 0x0002, /* silence (!default) if sound not found */
    SND_MEMORY
    = 0x0004, /* pszSound points to a memory file */
    SND_LOOP
    = 0x0008, /* loop the sound until next sndPlaySound */
    SND_NOSTOP
    = 0x0010, /* don't stop any currently playing sound */
    SND_NOWAIT
    = 0x00002000, /* don't wait if the driver is busy */
    SND_ALIAS
    = 0x00010000, /* name is a registry alias */
    SND_ALIAS_ID
    = 0x00110000, /* alias is a predefined ID */
    SND_FILENAME
    = 0x00020000, /* name is file name */
    SND_RESOURCE
    = 0x00040004 /* name is resource name or atom */
    }

    [DllImport(
    "CoreDll.DLL", EntryPoint = "PlaySound", SetLastError = true)]
    private extern static int WCE_PlaySound(string szSound, IntPtr hMod, int flags);

    [DllImport(
    "CoreDll.DLL", EntryPoint = "PlaySound", SetLastError = true)]
    private extern static int WCE_PlaySoundBytes(byte[] szSound, IntPtr hMod, int flags);

    /// <summary>
    /// Construct the Sound object to play sound data from the specified file.
    /// </summary>
    public Sound(string fileName)
    {
    m_fileName
    = fileName;
    }
    public Sound()
    { }
    /// <summary>
    /// Construct the Sound object to play sound data from the specified stream.
    /// </summary>
    public Sound(Stream stream)
    {
    // read the data from the stream
    m_soundBytes = new byte[stream.Length];
    stream.Read(m_soundBytes,
    0, (int)stream.Length);
    }

    /// <summary>
    /// Play the sound
    /// </summary>
    public void Play()
    {
    // if a file name has been registered, call WCE_PlaySound,
    // otherwise call WCE_PlaySoundBytes
    if (m_fileName != null)
    WCE_PlaySound(m_fileName, IntPtr.Zero, (
    int)(Flags.SND_ASYNC | Flags.SND_FILENAME));
    else
    WCE_PlaySoundBytes(m_soundBytes, IntPtr.Zero, (
    int)(Flags.SND_ASYNC | Flags.SND_MEMORY));
    }



    public void Stop()
    {
    if (m_fileName != null)
    WCE_PlaySound(
    null, IntPtr.Zero, (int)(Flags.SND_ASYNC | Flags.SND_FILENAME));
    else
    WCE_PlaySoundBytes(
    null, IntPtr.Zero, (int)(Flags.SND_ASYNC | Flags.SND_MEMORY));
    }
    }

    /// <summary>
    /// 测试方法
    /// </summary>
    private static void PlayScheduleAlarmSound()
    {
    string file = @"Windows\alarm.wav";
    Sound sound
    = new Sound(file);
    sound.Play();
    }

  • 相关阅读:
    人名币转大写
    Http协议与TCP协议简单理解
    unity3d常用属性汇总
    ConcurrentHashMap的key value不能为null,map可以?
    一个线程池中的线程异常了,那么线程池会怎么处理这个线程?
    Dubbo负载均衡算法
    [LeetCode] 240. 搜索二维矩阵 II ☆☆☆(二分查找类似)
    [LeetCode] 74. 搜索二维矩阵 ☆☆☆(二分查找)
    Maven中的dependencyManagement 意义
    深入理解maven构建生命周期和各种plugin插件
  • 原文地址:https://www.cnblogs.com/springworks/p/2059072.html
Copyright © 2020-2023  润新知