⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 sound.cs

📁 PPC 上 播放声音的一些测试使用
💻 CS
字号:
using System;
using System.IO;
using System.Runtime.InteropServices;
using System.Diagnostics;
using System.Threading;


namespace testVoice
{
	/// <summary>
	/// Sound 的摘要说明。
	/// </summary>
	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);

		[DllImport("CoreDll.DLL", EntryPoint="PlaySoundW", SetLastError=true)]
		private extern static int PlaySoundW(string szSound, int hMod, int flags);
 
		[DllImport("CoreDll.DLL", CharSet=CharSet.Auto)]
		public extern static bool sndPlaySound(string lpszSoundname, uint fuSound);
		
		[DllImport("coredll")]
		public static extern bool PlaySound( string szSound, IntPtr hMod, int flags );


		public Sound(string fileName)
		{
			//
			// TODO: 在此处添加构造函数逻辑
			//
			m_fileName = fileName;
		}

		public Sound(Stream stream)    
		{
			// read the data from the stream
			m_soundBytes = new byte [stream.Length];
			stream.Read(m_soundBytes, 0,(int)stream.Length);
		}

		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| Flags.SND_LOOP));
			else
				WCE_PlaySoundBytes(m_soundBytes, IntPtr.Zero, (int) ( Flags.SND_ASYNC | Flags.SND_MEMORY | Flags.SND_LOOP));
		}

		public void PlayOnce() 
		{
			// 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 | Flags.SND_NOWAIT));
			else
				WCE_PlaySoundBytes (m_soundBytes, IntPtr.Zero, (int) ( Flags.SND_ASYNC | Flags.SND_MEMORY ));
		}

		public void endPlay()
		{
			try
			{
				WCE_PlaySoundBytes (null, IntPtr.Zero, (int) (Flags.SND_SYNC | Flags.SND_MEMORY | Flags.SND_NOWAIT));
			}
			catch(Exception e)
			{
				string str;
				str=e.Message;
			}
		}
	}

}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -