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: # 下午5点33分的时候开始提⽰
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 参数指定播放哪⼀个声⾳;可能的值是 -
1,MB_ICONASTERISK,MB_ICONEXCLAMATION,MB_ICONHAND,MB_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 | )


发布评论