2023年11月29日发(作者:)

Python实例讲解--定时播放(闹钟+⾳乐)

⾃⼰写的闹钟, 只可以播放wav格式的⾳频。

Python代码

1. import time

2. import sys

3.

4. soundFile = ''

5. not_executed = 1

6.

7. def soundStart():

8. if rm[:5] == 'linux':

9. import os

10. 2('aplay -q' + soundFile)

11. else:

12. import winsound

13. und(soundFile, _FILENAME)

14.

15. while(not_executed):

16. dt = list(ime())

17. hour = dt[3]

18. minute = dt[4]

19. if hour == 17 and minute == 38: # 下午533分的时候开始提⽰

20. soundStart()

21. not_executed = 0

winsound 模块提供访问由 Windows 平台提供的基本的声⾳播放设备。它包含函数和数个常量。

Beep(frequency, duration)

蜂鸣PC的喇叭。 frequency 参数指定声⾳的频率,以赫兹,并且必须是在 37 32,767

的范围之中。duration 参数指定声⾳应该持续的毫秒数。如果系统不能蜂鸣喇叭,挂起 RuntimeError。注意:Windows 95 98

下,Windows Beep() 函数存在但是⽆效的(它忽略它的参数)。这种情况下Python通过直接的端⼝操作模拟它(2.1版本中增加的)。不知道是

否在所有的系统上都⼯作。 1.6版本中的新特性。

PlaySound(sound, flags)

从平台 API 中调⽤ PlaySound() 函数。sound 参数必须是⼀个⽂件名,⾳频数据作为字符串,或为 None。它的解释依赖于 flags

值,该值可以是⼀个位⽅式或下⾯描述的变量的组合。如果系统显⽰⼀个错误,挂起 RuntimeError

MessageBeep([type=MB_OK])

从平台 API 中调⽤ MessageBeep() 函数。播放⼀个在注册表中指定的声⾳。type 参数指定播放哪⼀个声⾳;可能的值是 -

1MB_ICONASTERISKMB_ICONEXCLAMATIONMB_ICONHANDMB_ICONQUESTION,和 MB_OK,所有的描述如下。值 -1

产⽣⼀个``简单的蜂鸣'';换句话说这是如果声⾳不能被播放的后备计划。2.3版本中的新特性。

SND_FILENAME

sound 参数是⼀个 WAV ⽂件的名称。不使⽤ SND_ALIAS

SND_ALIAS

sound 参数是注册表中⼀个声⾳组合的名称。如果注册表没有包含这样的名称,播放系统缺省的声⾳除⾮ SND_NODEFAULT 也被

指定。如果没有缺省的声⾳被注册,挂起 RuntimeError。不使⽤ SND_FILENAME

所有的 Win32 系统⾄少⽀持下列,⼤多数系统⽀持的更多:

PlaySound() 名称 对应的控制⾯板声⾳名称

'SystemAsterisk' Asterisk

'SystemExclamation' Exclamation

'SystemExit' Exit Windows

'SystemHand' Critical Stop

'SystemQuestion' Question

例⼦:

Python代码

1. import winsound

2.

3. # Play Windows exit sound.

4. und("SystemExit", _ALIAS)

5.

6. # Probably play Windows default sound, if any is registered (because

7. # "*" probably isn't the registered name of any sound).

8. und("*", _ALIAS)

SND_LOOP

重复地播放声⾳。SND_ASYNC标识也必须被⽤来避免堵塞。不能⽤ SND_MEMORY

SND_MEMORY

提供给PlaySound() sound 参数是⼀个 WAV ⽂件的内存映像(memory image),作为⼀个字符串。

注意:这个模块不⽀持从内存映像中异步播放,因此这个标识和 SND_ASYNC 的组合将挂起 RuntimeError

SND_PURGE

停⽌播放所有指定声⾳的实例。

SND_ASYNC

⽴即返回,允许声⾳异步播放。

SND_NODEFAULT

不过指定的声⾳没有找到,不播放系统缺省的声⾳。

SND_NOSTOP

不中断当前播放的声⾳。

SND_NOWAIT

Python代码

1. import wx

2. from owsebutton import FileBrowseButton

3.

4. class MyFrame():

5. def __init__(self):

6. .__init__(self, None, title="",size=(500,100))

7. p = (self)

8.

9. = FileBrowseButton(p,labelText="Select WAV file:",fileMask="*.wav")

10. btn = (p, -1, "Play")

11. (_BUTTON, Sound, btn)

12.

13. sizer = er(NTAL)

14. (, 1, _CENTER_VERTICAL)

15. (btn, 0, _CENTER_VERTICAL)

16. border = er(AL)

17. (sizer, 0, |, 15)

18. er(border)

19.

20.

21. def OnPlaySound(self, evt):

22. filename = ue()

23. = (filename)

24. if ():

25. (_ASYNC)

26. else:

27. eBox("Invalid sound file", "Error")

28.

29.

30. app = leApp()

31. frm = MyFrame()

32. ()

33. op()

实例⼆

Python代码

1. import wx

2. import

3. import os

36. _pos = Text(self, -1, size=(100,-1))

37.

38. # setup the button/label layout using a sizer

39. sizer = gSizer(5,5)

40. (loadButton, (1,1))

41. (playButton, (2,1))

42. (pauseButton, (3,1))

43. (stopButton, (4,1))

44. (_file, (1, 2))

45. (_size, (2, 2))

46. (_len, (3, 2))

47. (_pos, (4, 2))

48. (, (5,1), span=(5,1)) # for .avi .mpg video files

49. er(sizer)

50.

51. = (self)

52. (_TIMER, r)

53. (100)

54.

55. def onLoadFile(self, evt):

56. dlg = alog(self, message="Choose a media file",

57. defaultDir=(), defaultFile="",

58. style= | _DIR )

59. if dal() == _OK:

60. path = h()

61. File(path)

62. y()

63.

64. def doLoadFile(self, path):

65. if not (path):

66. eBox("Unable to load %s: Unsupported format?" % path, "ERROR", _ERROR | )