能动手也要 bb¶
>>> robot.speaker.beep([500, 500]) # 让机器人发出两个 500Hz 的音节
speaker 表示机器人内置的一个扬声器。有了它,Cozmars 就可以说话、播放数字音乐了。还是让我们从最简单的音调说起吧
哼小曲¶
扬声器用 speaker 属性表示。它的 beep() 函数通过播放不同频率的正弦波形,使扬声器可以模仿蜂鸣器,发出不同的 音调
注解
这里所说的 音调 ,在程序中可以用不同的数据类型表示。
比如 C 大调 “do re me fa so la si” 中的 “la” 音,音乐记号是 A4,频率是 440 Hz,MIDI 代码是 69,那么 ‘A4’ 、 440.0 和 69 都可以用来表示这个 音调
用 None 或 0 表示静音(休止符)
beep() 的参数是 音调 构成的数组,默认每个 音调 为一拍,而被括号包围起来的 音调 每个为半拍,被两层括号包围起来的 音调 每个为 1/4 拍… 以此类推,每多一层括号拍数减半; 用 tempo 参数来指定播放的速度(BPM),repeat 来指定重复次数
运行下面一段程序,猜猜是周杰伦的哪首歌:
from rute_cozmars import Robot
tones = ['D4', 'G4', 'G4', 'B4', 'C5', 'B4', 'A4',
('G4', 'A4'), 'B4', 'B4', 'B4', 'B4', ('A4', 'B4'), 'A4', 'G4', 0]
with Robot('xxxx') as robot:
robot.speaker.beep(tones, tempo=120, repeat=2)
Rock n roll¶
speaker 的 play() 函数能很方便地播放多种声音格式,只要把声音的文件路径、网址或 wav 数据作为 play() 的参数即可
>>> robot.speaker.play('./waiting_for_the_end.mp3')
各类歌曲顺手拈来,缓则“乐以教和”,躁可“动次打次”,取决于你喜欢怎样的 Cozmars