Python for S60作品:双音频电话拨号器

柯南剧场版《战栗的乐谱》中有这么个情景,利用双音频电话的工作原理发声拨电话。有网友利用软件生成相应波形的信号并用电脑音响验证,确实可行!详见帖子:用音响打电话(揭秘柯南电话拨号)

虽说现在的手机普及,几乎人手一部,但是在一些时候,因为资费、信号等问题,还是希望使用家里、宿舍里的固定电话,这时往往不得不看着手机屏幕一个个地拨号,感觉特别不爽……于是想到,利用上面“音响拨号”的原理做个小软件,通过读取手机内记录的电话号码发出不同的音频自动拨号……

Python for S60是个不错的平台,其继承了Python灵活简单的特点,而且也已经有好几年的发展了,各种模块相当丰富,应用趋向成熟。

关于PyS60的编程,主要有下面两个地方提供了很好的例子资源:

虽说是脚本语言,但依然能打包成一般的手机安装程序发布SIS、SISX等的文件,这就要用到一些打包软件,在Nokia PyS60 FAQs有提到。

Nokia文档里面有一Python Training Course,提供了一些简单的例子代码和说明,但远没有上面的例子多。

另外一个资源是Getting Started with Python for Series 60 Platform介绍运行时环境。

所有这些资料所围绕的,还是离不开PyS60,包括运行时、ScriptShell和SDK,这是在Sourceforge上的一个开源项目

至于那个拨号器还只是雏形,连界面都没有,更没有实现从电话簿读取号码,只是出个对话框输入号码,然后发出双音频信号,信号是通过Mp3文件播放出来的。

拨号器在ScriptShell运行的效果:

用到的Mp3文件可以到网盘下载:http://www.uushare.com/user/pentie/file/1307352

具体源代码如下:

import appuifw, e32, audio
 
def quit():
	player.close()
	app_lock.signal()
 
def play_sound(f):
	global player
	player = audio.Sound.open(f)
	player.play()
 
def dial():
    num = appuifw.query(u"Type a number:", "text")
    for i in range(len(num)):
        path = u"E:\\DialSounds\\%s.mp3" % num[i]
        print path
        play_sound(path)
    print "Done for dialing ", num
 
def menu_callback():
    def internal_function():
        dial()
    return internal_function
 
appuifw.app.menu = [(u"Dial", menu_callback())]
 
app_lock = e32.Ao_lock()
appuifw.app.exit_key_handler = quit
print "Choose 'Dial'..."
app_lock.wait()
文章分类 Mobile, Python 标签: , , , , ,

发表评论

电子邮件地址不会被公开。 必填项已用*标注

*