Домашнее задание. Будильник
25 января 2018
Простейший будильник должен позволить указать время срабатывания и уметь издавать звук.
Модуль SimpleAudio
Модуль SimpleAudio позволяет воспроизводить звуковые файлы в формате WAV через динамики компьютера. Ещё раз: он воспроизводит только файлы в формате WAV. Он не воспроизводит формат mp3, wma и прочие.
Установка в Windows
Чтобы установить модуль simpleaudio на Windows, откройте программу «Командная строка» (найдите её в меню Пуск или нажмите Win+R, введите cmd и нажмите «Выполнить»). Выполните там команду
pip install simpleaudio
Установка в Linux и macOS
Чтобы установить модуль simpleaudio на Linux или macOS, откройте программу «Терминал» и выполните там команду:
pip3 install simpleaudio
На Linux вам понадобятся права суперпользователя, либо команда sudo:
sudo pip3 install simpleaudio
Как воспроизвести звук?
Не будем вдаваться в подробности и построим код на основе примера из документации к модулю SimpleAudio (http://simpleaudio.readthedocs.io/en/latest/):
import simpleaudio
def play_wave(filename):
wave_object = simpleaudio.WaveObject.from_wave_file(filename)
player = wave_object.play()
player.wait_done()
Теперь мы можем воспроизводить любой WAV-файл при помощи вызова нашей функции play_wave()
:
play_wave("C:\\python\\alarm.wav")
Постановка задачи
Требуется создать программу, которая делает следующее:
- Запрашивает у пользователя дату и время будильника (например, с помощью input)
- Сообщает, через какое время сработает будильник
- Если дата из прошлого, то сообщает об этом и прекращает работу
- В цикле ждёт наступления указанного времени
- Воспроизводит файл alarm.wav
Файл alarm.wav можно скачать отсюда: https://anhel.in/files/alarm.wav.zip. Не забудьте распаковать архив. Источник файла.
Замечания по реализации
При ожидании в цикле лучше использовать функцию sleep:
from time import sleep
#...
while some_condition:
sleep(1) # Ждать одну секунду
Для определения наступления нужного момента используйте классы и функции из модуля datetime
.