Python Audio

Python Audio — способы воспроизведения Аудио-файлов.

Python Audio - хочу убедиться, что Python способен даже проигрывать Аудио-файлы. Сомнений нет, но хотелось бы узнать способ воспроизведения Аудио-файлов.

Уверенность основана на том, что из программы, написанной на Python’е, всегда можно обратиться к подпрограмме, написанной на другом языке программирования, на котором эта задача решена достаточно качественно.

Для начала решил использовать Help:

>>> help (Audio)
Traceback (most recent call last):
File «<pyshell#6>», line 1, in <module>
help (Audio)
NameError: name ‘Audio’ is not defined

>>> help (audio)
Traceback (most recent call last):
File «<pyshell#7>», line 1, in <module>
help (audio)
NameError: name ‘audio’ is not defined

Выручила такая информация:

Для создания игр и приложений, требующих нестандартного интерфейса, можно использовать библиотеку Pygame. Она также предоставляет обширные средства работы с мультимедиа: с её помощью можно управлять звуком и изображениями, воспроизводить Видео.

Согласно рекомендации со страницы http://www.pygame.org/wiki/GettingStarted, используя команду

python -m pip install —user pygame

, инсталлировал библиотеку Pygame. Пришлось только убить 3 в начале команды, то есть заменить python3 на python.

Для проверки успешности инсталляции библиотеки Pygame использовал команду

python -m pygame.examples.aliens

Открылись, а затем закрылись два чёрных ДОСовских окна — считаю, что проверка пройдена. Получил совет «If it works, you are ready to go! Continue on to the tutorials.» Перешёл по ссылке на списки книг и был разочарован качеством переводов — надо самостоятельно подбирать литературу по Pygame.

Для проверки возможности использования Pygame исполнил в интерпретаторе Python команду import Pygame — ошибка не выскочила, всё в порядке.

Привожу информацию об извлечении Звуков:

11.4 Звуки

Этот раздел использует звук щелчка, который быть может скачан с помощью нажатия правой кнопки мыши здесь и выбора “save link as” (или “save target as”, в зависимости от того, как это пишется в вашем браузере).

Так же как и картинки, звуки должны быть загружены перед использованием. Это должно быть проделано только один раз, до главного цикла программы. Следующая команда загружает звуковой файл и создаёт переменную click_sound для того, чтобы ссылаться на него:

click_sound = pygame.mixer.Sound(«click.wav»)

Этот звук можно проиграть, когда пользователь нажимает на кнопку мыши, с помощью следующего кода:

for event in pygame.event.get():
‘    if event.type == pygame.QUIT:
‘        done=True
‘    if event.type == pygame.MOUSEBUTTONDOWN:
‘        click_sound.play()

Рабочий код программы таков:

# Program Sound
import pygame
# Call this function so the Pygame library can initialize itself
# initialize all imported pygame modules
pygame.init()

# click_sound = pygame.mixer.Sound(«click.wav»)
# click_sound = pygame.mixer.Sound(‘BREEZE.WAV’)
click_sound = pygame.mixer.Sound(«laser5.ogg»)

# Create an 800×600 sized screen — чтобы мышь по экрану бегала и был Х для закрытия окна
screen = pygame.display.set_mode([800, 600])

# Этот звук можно проиграть, когда пользователь нажимает на кнопку мыши,
# с помощью следующего кода:
done = False

while not done:
‘    for event in pygame.event.get():
‘        if event.type == pygame.QUIT:
‘            done=True
‘        if event.type == pygame.MOUSEBUTTONDOWN:
‘            print (‘MY__MOUSE_KEY’) # Печать идёт в окне Shell !
‘            click_sound.play()
pygame.quit()

Без двух строк

pygame.init()

screen = pygame.display.set_mode([800, 600])

программа неработоспособна!

Апострофы в начале строк введены, чтобы WordPress не сожрал пробелы — перед запуском программы апострофы нужно убрать!

Существует модуль winsound, который способен проигрывать звук в Windows, но похоже, что только в формате wav.

Чтобы вскользь ознакомиться с модулем winsound, исполнил в Интерпретаторе Python три команды:

>>> import winsound

>>> dir (winsound)
['Beep', 'MB_ICONASTERISK', 'MB_ICONEXCLAMATION', 'MB_ICONHAND', 'MB_ICONQUESTION', 'MB_OK', 'MessageBeep', 'PlaySound', 'SND_ALIAS', 'SND_APPLICATION', 'SND_ASYNC', 'SND_FILENAME', 'SND_LOOP', 'SND_MEMORY', 'SND_NODEFAULT', 'SND_NOSTOP', 'SND_NOWAIT', 'SND_PURGE', '__doc__', '__file__', '__loader__', '__name__', '__package__', '__spec__']
>>> help (winsound)
Help on module winsound:

NAME
winsound

DESCRIPTION
PlaySound(sound, flags) — play a sound
SND_FILENAME — sound is a wav file name
SND_ALIAS — sound is a registry sound association name
SND_LOOP — Play the sound repeatedly; must also specify SND_ASYNC
SND_MEMORY — sound is a memory image of a wav file
SND_PURGE — stop all instances of the specified sound
SND_ASYNC — PlaySound returns immediately
SND_NODEFAULT — Do not play a default beep if the sound can not be found
SND_NOSTOP — Do not interrupt any sounds currently playing
SND_NOWAIT — Return immediately if the sound driver is busy

Beep(frequency, duration) — Make a beep through the PC speaker.
MessageBeep(type) — Call Windows MessageBeep.

FUNCTIONS
Beep(frequency, duration)
A wrapper around the Windows Beep API.

frequency
Frequency of the sound in hertz.
Must be in the range 37 through 32,767.
duration
How long the sound should play, in milliseconds.

MessageBeep(type=0)
Call Windows MessageBeep(x).

x defaults to MB_OK.

PlaySound(sound, flags)
A wrapper around the Windows PlaySound API.

sound
The sound to play; a filename, data, or None.
flags
Flag values, ored together. See module documentation.

DATA
MB_ICONASTERISK = 64
MB_ICONEXCLAMATION = 48
MB_ICONHAND = 16
MB_ICONQUESTION = 32
MB_OK = 0
SND_ALIAS = 65536
SND_APPLICATION = 128
SND_ASYNC = 1
SND_FILENAME = 131072
SND_LOOP = 8
SND_MEMORY = 4
SND_NODEFAULT = 2
SND_NOSTOP = 16
SND_NOWAIT = 8192
SND_PURGE = 64

FILE
c:\python36\dlls\winsound.pyd

Нужно будет со временем попробовать модуль winsound и сравнить его возможности с возможностями звуковых функций Python Pygame, который, судя по обилию звуковых функций, может проигрывать многие звуковые форматы.

Причём есть чёткий критерий: он способен воспроизводить все звуковые форматы, которые воспроизводит проигрыватель VLC Media Player.

Pygame не сможет проигрывать все .wav файлы, которые можно найти в интернете. Если бесплатная программа VLC Media Player не сможет проиграть звук, то не сможет это сделать и Pygame.

==

 

==

 

Приглашаю всех высказываться в Комментариях. Критику и обмен опытом одобряю и приветствую. В хороших комментариях сохраняю ссылку на сайт автора!

И не забывайте, пожалуйста, нажимать на кнопки социальных сетей, которые расположены под текстом каждой страницы сайта.
Python AudioПродолжение тут…

Deviz_2

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Можно использовать следующие HTML-теги и атрибуты: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Проверка комментариев включена. Прежде чем Ваши комментарии будут опубликованы пройдет какое-то время.