Python(PyS60)实现简单语音整点报时
作者:softworm 发布时间:2023-07-06 03:05:23
标签:python,语音,整点报时
本文实例为大家分享了python语音整点报时的具体代码,供大家参考,具体内容如下
主要的技术特殊点在于PyS60的定时器最多只能定2147秒。在手机上直接写的。
import e32
import audio
import time
import appuifw
import sys
import os.path
import marshal
def say(oclock):
"""say the time in English"""
c = oclock
if c > 12:
c -= 12
cs = ['zero', 'one', 'two', 'three', 'four', 'five', 'six', 'seven', 'eight', 'nine', 'ten', 'eleven', 'twelve'][c]
audio.say("it's " + cs + " o'clock.")
def say_current():
global Sayflags
t = time.localtime()
# say according to configuration
if Sayflags[int(t[3])] == 1:
say(t[3])
def on_oclock():
"""when an o'clock arrived"""
say_current()
start_timer()
def start_timer():
"""start a timer that will be reached at next o'clock"""
global Timer
lt = time.localtime()
d = 60 * (59 - lt[4]) + 61 - lt[5]
if d>2147:
Timer.after(2147, lambda : Timer.after(d-2147, on_oclock))
else:
Timer.after(d, on_oclock)
def clock_names():
return [u'0:00', u'1:00', u'2:00', u'3:00', u'4:00', u'5:00', u'6:00', u'7:00', u'8:00', u'9:00', u'10:00', u'11:00', u'12:00', u'13:00', u'14:00', u'15:00', u'16:00', u'17:00', u'18:00', u'19:00', u'20:00', u'21:00', u'22:00', u'23:00']
def list_handler():
"""set flag and refresh the listbox"""
global Lb
global Sayflags
c = Lb.current()
Sayflags[c] = 1 - Sayflags[c]
Lb.set_list(list_content(), c)
def list_content():
global Sayflags
icons = [appuifw.Icon(u"z:\\resource\\apps\\avkon2.mif", 16506, 16507), appuifw.Icon(u"z:\\resource\\apps\\avkon2.mif", 16504, 16505)] # unchecked, unchecked
return map(lambda s, f: tuple([s, icons[f]]), clock_names(), Sayflags)
def exit_handler():
global Lock
global Timer
global Standalone
Timer.cancel()
save_cfg()
if not Standalone:
Lock.signal()
else:
appuifw.app.set_exit()
def save_cfg():
global Sayflags
try:
f = open(Configfile, 'wb')
marshal.dump(Sayflags, f)
f.close()
except:
pass
def load_cfg():
global Sayflags
try:
f = open(Configfile, 'rb')
Sayflags = marshal.load(f)
f.close()
except:
pass
# Testing code
def test():
say_current()
#on_oclock()
#for n in range(1,13):
# say(n)
#test()
def main():
global Standalone
appuifw.app.title = u'Audio Clock'
appuifw.app.exit_key_handler = exit_handler
appuifw.app.body = Lb
if time.localtime()[4] == 0:
say_current()
start_timer()
if not Standalone:
Lock.wait()
Standalone = True
Timer = e32.Ao_timer()
Lock = e32.Ao_lock()
Configfile = os.path.abspath(os.path.dirname(sys.argv[0])) + '\\audioclock.cfg'
Sayflags = [0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1] #24 clocks' flags
load_cfg()
Lb = appuifw.Listbox(list_content(), list_handler)
main()
来源:https://blog.csdn.net/softworm/article/details/7727339
0
投稿
猜你喜欢
- 使用Python读取解析xmind文件,一键统计测试用例数量。问题:做测试的朋友们经常会用到xmind这个工具来梳理测试点或写测试用例,但是
- rs.open sql,conn:如果sql是delete,update,insert则会返
- 防止客户机的请求互相干扰或者服务器与维护程序相互干扰的方法主要有多种。如果你关闭数据库,就可以保证服务器和myisamchk和isamchk
- 本文实例讲述了php mailer类调用远程SMTP服务器发送邮件实现方法。分享给大家供大家参考,具体如下:php mailer 是一款很好
- icech: 在制作网页的时候,常常要遇到制作虚线表格的问题,下面的文章就能解决这个问题。方法一:作一个1X2的图。半黑半白,再利用表格作成
- ModuleNotFoundError: No module named ‘dlib'尝试命令,但没成功pip3 install d
- 1、出现错误train_df = pd.read_csv( 'C:\Users\lenovo\Desktop\train.csv
- “到底是什么将艺术和设计分开的?”这样一个话题听起来费解,长时间以来, 也已经被讨论过无数次。艺术家和设计师都是通过共通的知识和素养来创造视
- 我们今天主要描述的是php和MySQL转义字符,我们大家都知道php和MySQL转义字符的实际应用比例还是占为多数的,如果你对这一技术,心存
- 通过《SQL Server 数据库备份和还原认识和总结(一)》,相信您对数据备份和还原有了一个更深入的认识,在上文中我没有对事务日志做剖析,
- <style type="text/css"> <!-- body,td,th {
- 有一个需求就是需要对url进行进一步的划分得到详细的各个字段信息,下面是简单的实现:#!/usr/bin/python# -*- codin
- 本文实例讲述了Django框架静态文件使用/中间件/禁用ip功能。分享给大家供大家参考,具体如下:静态文件一、静态文件的使用静态文件:网页中
- requests是常用的请求库,不管是写爬虫脚本,还是测试接口返回数据等。都是很简单常用的工具。这里就记录一下如何用requests发送js
- QQ登录Banner增加了剧情的概念之后,已经推出了春节和情人节两期。这之后设想能围绕Banner做的更加丰富,对传统文化的体现也能更为深入
- 语法结构: 1. Cast 语法结构:CAST ( expression AS data_type [ ( length ) ] ) 2.
- 研究了一段时间酷狗音乐的接口,完美破解了其vip音乐下载方式,想着能更好的追求开源,故写下此篇文章,本文仅供学习参考。虽然没什么
- 测试代码:输出简单的ul li1.asp代码如下:<% response.write "<ul>" r
- ASP,一种最先广泛的流行在WEB行业的编程语言。严格的说,ASP还算不上的编程语言。不过,因为微软的大力支持,ASP这一路,走得非常顺利。
- 一、套接字套接字是为特定网络协议(例如TCP/IP,ICMP/IP,UDP/IP等)套件对上的网络应用程序提供者提供当前可移植标准的对象。它