柯南剧场版《战栗的乐谱》中有这么个情景,利用双音频电话的工作原理发声拨电话。有网友利用软件生成相应波形的信号并用电脑音响验证,确实可行!详见帖子:用音响打电话(揭秘柯南电话拨号)
虽说现在的手机普及,几乎人手一部,但是在一些时候,因为资费、信号等问题,还是希望使用家里、宿舍里的固定电话,这时往往不得不看着手机屏幕一个个地拨号,感觉特别不爽……于是想到,利用上面“音响拨号”的原理做个小软件,通过读取手机内记录的电话号码发出不同的音频自动拨号……
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()


