MainForm.cs
上传用户:linger1010
上传日期:2008-12-08
资源大小:561k
文件大小:2k
源码类别:

Windows Mobile

开发平台:

C#

  1. using System;
  2. using System.Collections.Generic;
  3. using System.ComponentModel;
  4. using System.Data;
  5. using System.Drawing;
  6. using System.Text;
  7. using System.Windows.Forms;
  8. using System.Runtime.InteropServices;
  9. namespace PlayingSound
  10. {
  11. public partial class MainForm : Form
  12. {
  13. private const UInt32 SND_SYNC = 0x00000000;
  14. private const UInt32 SND_ASYNC = 0x00000001;
  15. private const UInt32 SND_NODEFAULT = 0x00000002;
  16. private const UInt32 SND_MEMORY = 0x00000004;
  17. private const UInt32 SND_LOOP = 0x00000008;
  18. private const UInt32 SND_NOSTOP = 0x00000010;
  19. private const UInt32 SND_NOWAIT = 0x00002000;
  20. private const UInt32 SND_ALIAS = 0x00010000;
  21. private const UInt32 SND_FILENAME = 0x00020000;
  22. private const UInt32 SND_RESOURCE = 0x00040004;
  23. public MainForm()
  24. {
  25. InitializeComponent();
  26. }
  27. [DllImport("coredll.dll",
  28. CallingConvention = CallingConvention.Winapi,
  29. CharSet = CharSet.Unicode,
  30. EntryPoint = "PlaySound",
  31. PreserveSig = true,
  32. SetLastError = false)]
  33. private extern static bool PlaySound(
  34. String pszSound,
  35. IntPtr hmod,
  36. UInt32 fdwSound);
  37. private void m_btnBrowse_Click(object sender, EventArgs e)
  38. {
  39. if(DialogResult.OK != m_openFileDialog.ShowDialog())
  40. return;
  41. m_txtFile.Text = m_openFileDialog.FileName;
  42. }
  43. // “Play Once”按钮
  44. private void m_btnPlayOnce_Click(object sender, EventArgs e)
  45. {
  46. // 播放指定的文件一次
  47. PlaySound(m_txtFile.Text, IntPtr.Zero, SND_ASYNC | SND_FILENAME);
  48. }
  49. // “Play Loop”按钮
  50. private void m_btnPlayLoop_Click(object sender, EventArgs e)
  51. {
  52. // 循环播放指定的文件
  53. PlaySound(m_txtFile.Text, IntPtr.Zero, SND_ASYNC | SND_FILENAME | SND_LOOP);
  54. }
  55. // “Stop”按钮
  56. private void m_btnStop_Click(object sender, EventArgs e)
  57. {
  58. // 将第一个参数设置为null可以终止声音的播放
  59. PlaySound(null, IntPtr.Zero, SND_ASYNC | SND_FILENAME);
  60. }
  61. }
  62. }