自己写的闹钟, 只可以播放wav格式的音频。

import time
import syssoundFile = 'sound.wav'
not_executed = 1def soundStart():if sys.platform[:5] == 'linux':import osos.popen2('aplay -q' + soundFile)else:import winsoundwinsound.PlaySound(soundFile, winsound.SND_FILENAME)while(not_executed):dt = list(time.localtime())hour = dt[3]minute = dt[4]if hour == 17 and minute == 38: # 下午5点33分的时候开始提示soundStart()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

例子:

    import winsound# Play Windows exit sound.winsound.PlaySound("SystemExit", winsound.SND_ALIAS)# Probably play Windows default sound, if any is registered (because# "*" probably isn't the registered name of any sound).winsound.PlaySound("*", winsound.SND_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

如果声音驱动忙立即返回。

MB_ICONASTERISK

播放 SystemDefault 声音。

MB_ICONEXCLAMATION

播放 SystemExclamation 声音。

MB_ICONHAND

播放 SystemHand 声音。

MB_ICONQUESTION

播放 SystemQuestion 声音。


MB_OK

播放 SystemDefault 声音。

实例一

import wx
from wx.lib.filebrowsebutton import FileBrowseButtonclass MyFrame(wx.Frame):def __init__(self):wx.Frame.__init__(self, None, title="wx.Sound",size=(500,100))p = wx.Panel(self)self.fbb = FileBrowseButton(p,labelText="Select WAV file:",fileMask="*.wav")btn = wx.Button(p, -1, "Play")self.Bind(wx.EVT_BUTTON, self.OnPlaySound, btn)sizer = wx.BoxSizer(wx.HORIZONTAL)sizer.Add(self.fbb, 1, wx.ALIGN_CENTER_VERTICAL)sizer.Add(btn, 0, wx.ALIGN_CENTER_VERTICAL)border = wx.BoxSizer(wx.VERTICAL)border.Add(sizer, 0, wx.EXPAND|wx.ALL, 15)p.SetSizer(border)def OnPlaySound(self, evt):filename = self.fbb.GetValue()self.sound = wx.Sound(filename)if self.sound.IsOk():self.sound.Play(wx.SOUND_ASYNC)else:wx.MessageBox("Invalid sound file", "Error")app = wx.PySimpleApp()
frm = MyFrame()
frm.Show()
app.MainLoop()

实例二

import wx
import wx.media
import osclass Panel1(wx.Panel):def __init__(self, parent, id):#self.log = logwx.Panel.__init__(self, parent, -1, style=wx.TAB_TRAVERSAL|wx.CLIP_CHILDREN)# Create some controlstry:self.mc = wx.media.MediaCtrl(self, style=wx.SIMPLE_BORDER)except NotImplementedError:self.Destroy()raiseloadButton = wx.Button(self, -1, "Load File")self.Bind(wx.EVT_BUTTON, self.onLoadFile, loadButton)playButton = wx.Button(self, -1, "Play")self.Bind(wx.EVT_BUTTON, self.onPlay, playButton)pauseButton = wx.Button(self, -1, "Pause")self.Bind(wx.EVT_BUTTON, self.onPause, pauseButton)stopButton = wx.Button(self, -1, "Stop")self.Bind(wx.EVT_BUTTON, self.onStop, stopButton)slider = wx.Slider(self, -1, 0, 0, 0, size=wx.Size(300, -1))self.slider = sliderself.Bind(wx.EVT_SLIDER, self.onSeek, slider)self.st_file = wx.StaticText(self, -1, ".mid .mp3 .wav .au .avi .mpg", size=(200,-1))self.st_size = wx.StaticText(self, -1, size=(100,-1))self.st_len  = wx.StaticText(self, -1, size=(100,-1))self.st_pos  = wx.StaticText(self, -1, size=(100,-1))# setup the button/label layout using a sizersizer = wx.GridBagSizer(5,5)sizer.Add(loadButton, (1,1))sizer.Add(playButton, (2,1))sizer.Add(pauseButton, (3,1))sizer.Add(stopButton, (4,1))sizer.Add(self.st_file, (1, 2))sizer.Add(self.st_size, (2, 2))sizer.Add(self.st_len,  (3, 2))sizer.Add(self.st_pos,  (4, 2))sizer.Add(self.mc, (5,1), span=(5,1))  # for .avi .mpg video filesself.SetSizer(sizer)self.timer = wx.Timer(self)self.Bind(wx.EVT_TIMER, self.onTimer)self.timer.Start(100)def onLoadFile(self, evt):dlg = wx.FileDialog(self, message="Choose a media file",defaultDir=os.getcwd(), defaultFile="",style=wx.OPEN | wx.CHANGE_DIR )if dlg.ShowModal() == wx.ID_OK:path = dlg.GetPath()self.doLoadFile(path)dlg.Destroy()def doLoadFile(self, path):if not self.mc.Load(path):wx.MessageBox("Unable to load %s: Unsupported format?" % path, "ERROR", wx.ICON_ERROR | wx.OK)else:folder, filename = os.path.split(path)self.st_file.SetLabel('%s' % filename)self.mc.SetBestFittingSize()self.GetSizer().Layout()self.slider.SetRange(0, self.mc.Length())self.mc.Play()def onPlay(self, evt):self.mc.Play()def onPause(self, evt):self.mc.Pause()def onStop(self, evt):self.mc.Stop()def onSeek(self, evt):offset = self.slider.GetValue()self.mc.Seek(offset)def onTimer(self, evt):offset = self.mc.Tell()self.slider.SetValue(offset)self.st_size.SetLabel('size: %s ms' % self.mc.Length())self.st_len.SetLabel('( %d seconds )' % (self.mc.Length()/1000))self.st_pos.SetLabel('position: %d ms' % offset)app = wx.PySimpleApp()
# create a window/frame, no parent, -1 is default ID
frame = wx.Frame(None, -1, "play audio and video files", size = (320, 350))
# call the derived class
Panel1(frame, -1)
frame.Show(1)
app.MainLoop()

Python实例讲解 -- 定时播放 (闹钟+音乐)相关推荐

  1. 用python播放音乐_Python实例讲解 -- 定时播放 (闹钟+音乐)

    自己写的闹钟, 只可以播放wav格式的音频. import time import sys soundFile = 'sound.wav' not_executed = 1 def soundStar ...

  2. python定时播放音乐程序_Python实例讲解 -- 定时播放 (闹钟+音乐)

    自己写的闹钟, 只可以播放wav格式的音频. import time import sys soundFile = 'sound.wav' not_executed = 1 def soundStar ...

  3. 《音乐达人秀:Adobe Audition实战200例》——实例7 定时录制网络音乐节目

    本节书摘来自异步社区<音乐达人秀:Adobe Audition实战200例>一书中的第2章,实例7,作者 健逗,更多章节内容可以访问云栖社区"异步社区"公众号查看. 实 ...

  4. YDOOK:Python 通过系统直接播放音频音乐的各种方式 mp3 wav

    YDOOK:Python 通过系统直接播放音频音乐的各种方式 mp3 wav © YDOOK Jinwei Lin, shiye.work http://www.ydook.com https://o ...

  5. Python实例讲解 -- 磁盘文件的操作

    在文件夹里有六十多个RM格式的视频文件,我现在需要把它们的文件名都提取出来,并去掉文件的扩展名,以便放到需要的网页里. 应该有什么软件可以完成这个简单的要求,可是一时间到哪里去找这 样一个符合要求的软 ...

  6. python编写音乐-python写的定时播放音乐

    import datetime import os import time import pygame from pygame import mixer from pygame.locals impo ...

  7. python写的定时播放音乐

    import datetime import os import time import pygame from pygame import mixer from pygame.locals impo ...

  8. python实例讲解wxpythonhyh123_Python实例讲解 -- wxpython 基本的控件 (按钮)

    使用按钮工作 在wxPython 中有很多不同类型的按钮.这一节,我们将讨论文本按钮.位图按钮.开关按钮(toggle buttons )和通用(generic )按钮. 如何生成一个按钮? 在第一部 ...

  9. Python实例讲解 -- wxpython 基本的控件 (按钮)

    使用按钮工作 在wxPython 中有很多不同类型的按钮.这一节,我们将讨论文本按钮.位图按钮.开关按钮(toggle buttons )和通用(generic )按钮. 如何生成一个按钮? 在第一部 ...

最新文章

  1. PyTorch 数据并行处理
  2. day10-闭包函数、函数装饰器
  3. 【Android 安全】DEX 加密 ( Proguard 简介 | Proguard 相关网址 | Proguard 混淆配置 )
  4. unity json解析IPA后续
  5. $.ajax所犯的错误。success后面不执行
  6. Spring Boot文档阅读笔记-@SpringBootApplication官方解析与实例(1.5.19)
  7. 数据挖掘实践(金融风控)——task4:建模调参
  8. MySQL 8.0复制性能的提升(翻译)
  9. pythonplot下载_Matplotlib for Python Developers PDF 下载
  10. 使用C语言快速制作一个视频播放器
  11. 关闭笔记本电脑计算机键盘,笔记本小键盘怎么关闭,教您怎么关闭笔记本小键盘...
  12. POSTGRESQL通过身份证号码筛选年龄的两种方式
  13. 树莓派csi摄像头和usb摄像头_树莓派usb摄像头用fswebcam 设置
  14. 台式计算机c盘怎么清理空间,怎么样清理台式机c盘空间
  15. 全面比较Aptos和Sui:Aptos已上线 来看看Sui
  16. nginx之30分钟搞定nginx反向代理和负载均衡
  17. Substrate Tutorials:Start a Private Network (multi-node)
  18. Kotlin【简介】Android开发 配置 扩展
  19. 软件保护工具VMProtect用户手册——添加和搜索水印
  20. codeforces 869c(组合数)

热门文章

  1. 信息学奥赛C++语言:判断正负
  2. db2关闭下一句sql的日志_MySQL查询优化(3)-慢查询开启、日志分析
  3. 高级语言中的关键字:const用法分析
  4. ubuntu升级python_Ubuntu 系统下可以做什么?——拥抱自由和安静
  5. python绘制三维图散点图_python matplotlib模块——绘制三维图形、三维数据散点图...
  6. CentOS修改yum源【噗哈哈】
  7. linux那些事之TLB(Translation-Lookaside Buffer)无效操作
  8. [Matlab] 符号积分求对流扩散方程在给定初始条件下的一维解
  9. mui 实现a锚点定位 (demo演示)【建议:仅作为参考】
  10. 百度BCH云服务器SSL证书服务(免费申请流程)- 申请篇