/example/ipy_dx/dsound/dx.py

http://cwcpylib.googlecode.com/ · Python · 80 lines · 50 code · 15 blank · 15 comment · 1 complexity · 146d92f234f029d41a767abdb8af3c7f MD5 · raw file

  1. # -*- coding: utf-8 -*-
  2. """
  3. Description: DirectSound ?? wave
  4. Author: Chui-Wen Chiu <sisimi.pchome@gmail.com>
  5. License: PYTHON SOFTWARE FOUNDATION LICENSE
  6. """
  7. __author__ = "Chui-Wen Chiu"
  8. __author_email__ = "cwchiu@hotmail.com"
  9. import clr
  10. # WinForm ????
  11. clr.AddReference("System")
  12. clr.AddReference("System.Drawing")
  13. clr.AddReference("System.Windows.Forms")
  14. # DirectX ??
  15. clr.AddReferenceByName("Microsoft.DirectX, Version=1.0.2902.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" )
  16. clr.AddReferenceByName("Microsoft.DirectX.DirectSound, Version=1.0.2902.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" )
  17. from System.Windows.Forms import *
  18. from System.Drawing import *
  19. from Microsoft.DirectX import *
  20. from Microsoft.DirectX.DirectSound import *
  21. class MyForm(Form):
  22. def __init__(self):
  23. print 'constructor'
  24. self.InitializeComponent()
  25. def _Form1_Load(self, sender, e):
  26. print 'form_load'
  27. pass
  28. def Dispose(self, disposing):
  29. super(type(self), self).Dispose(disposing)
  30. def InitializeComponent(self):
  31. self.SuspendLayout()
  32. # do something
  33. self._button1 = Button()
  34. self._button1.Location = Point(66, 25)
  35. self._button1.Name = 'button1'
  36. self._button1.Size = Size(145, 38)
  37. self._button1.TabIndex = 0
  38. self._button1.Text = 'Play'
  39. self._button1.UseVisualStyleBackColor = True
  40. self._button1.Click += self._button1_Click
  41. self.Controls.Add(self._button1)
  42. # Form
  43. self.ClientSize = Size(292, 273)
  44. self.Name = 'Form1'
  45. self.Text = 'Form1'
  46. self.Load += self._Form1_Load
  47. self.ResumeLayout(False)
  48. def _button1_Click(self, sender, e):
  49. # ??
  50. playWav(self, "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.1\\Samples\\NetDs\\Tapi\\Tapi3\\Cpp\\FileTerm\\Welcome.wav")
  51. pass
  52. def playWav(frm, wav):
  53. """
  54. ?? wav
  55. """
  56. dev = Device()
  57. dev.SetCooperativeLevel(frm, CooperativeLevel.Normal)
  58. snd = SecondaryBuffer(wav, dev)
  59. snd.Play(0, BufferPlayFlags.Default)
  60. if __name__ == '__main__':
  61. Application.EnableVisualStyles()
  62. Application.SetCompatibleTextRenderingDefault(False)
  63. frm = MyForm()
  64. Application.Run(frm)