파이썬 오디오파일 재생 - paisseon odiopail jaesaeng

공부를 해볼까요?

[라즈베리파이] 파이썬으로 음악파일 재생시키는 방법(소스첨부)

<일단 모듈, pygame을 설치해야한다!>

혹시나해서 설치해봤는데, 이미 다 깔려있군요.. 

파이썬 오디오파일 재생 - paisseon odiopail jaesaeng

일단 실행창에서 cd를 통해 음악파일이 있는 경로까지 설정을 해준 다음,

"omxplater 파일명"

(ex. omxplayer a.wav)

요런식으로 입력해주시면, 바로 음악파일을 재생시키고 들을수도 있습니다.

파이썬 오디오파일 재생 - paisseon odiopail jaesaeng
 

<여러 음악파일을 동시에 실행시킬수도 있습니다>

저런식으로 파이에 바로 파일을 넣어주고 실행하면 편하죵 

파이썬 오디오파일 재생 - paisseon odiopail jaesaeng

(저는 경고음 효과음으로 테스트 했습니당)

<파이썬 음악파일을 재생하는 소스코드>

import pygame

import time

pygame.mixer.init()                                                                              

bang = pygame.mixer.Sound("a.wav")

while True:

bang.play()

time.sleep(2.0)

cs

<test.py> 

요 소스대로, 파이썬 파일하나 만들어서 실행시켜 주시면

음악 파일을 재생합니다.

근데  omxplayer에서는 재생이 가능한 음악파일이, 파이썬 코드로 불러오면 안되는 경우도 있었습니다

파이썬 오디오파일 재생 - paisseon odiopail jaesaeng
 

왜 그러는지는 모르겠는데..파일 손상이 아닌가 생각

(같은 wav인데 안됨)

<실행 동영상> 

보시면, 라즈베리파이에 스피커를 따로 연결했고,

일정한 시간을 간격으로 효과음 파일이 재생되는 모습입니다

파이썬 오디오파일 재생 - paisseon odiopail jaesaeng
 

(개간단)


winsound 모듈은 윈도우 플랫폼에서 제공하는 기본 소리 재생 장치에 대한 액세스를 제공합니다. 함수와 여러 상수를 포함합니다.

winsound.Beep(frequency, duration)

PC 스피커로 신호음을 울립니다. frequency 매개 변수는 소리의 주파수를 헤르츠 단위로 지정하며 37에서 32,767 범위에 있어야 합니다. duration 매개 변수는 소리의 지속 시간을 밀리 초로 지정합니다. 시스템이 스피커에서 신호음을 울리지 못하면, RuntimeError가 발생합니다.

winsound.PlaySound(sound, flags)

플랫폼 API에서 하부 PlaySound() 함수를 호출합니다. sound 매개 변수는 파일명, 시스템 소리 별칭, 바이트열류 객체의 오디오 데이터 또는 None 일 수 있습니다. 해석은 flags의 값에 따라 달라지는데, 아래에 설명된 상수의 비트별 OR 결합이 될 수 있습니다. sound 매개 변수가 None이면, 현재 재생 중인 파형 소리가 중지됩니다. 시스템이 에러를 표시하면 RuntimeError가 발생합니다.

winsound.MessageBeep(type=MB_OK)

플랫폼 API에서 하부 MessageBeep() 함수를 호출합니다. 레지스트리에 지정된 소리를 재생합니다. type 인자는 재생할 소리를 지정합니다; 가능한 값은 아래에 설명된 -1, MB_ICONASTERISK, MB_ICONEXCLAMATION, MB_ICONHAND, MB_ICONQUESTIONMB_OK입니다. -1 값은 “간단한 신호음”을 생성합니다; 이것은 소리를 재생할 수 없을 때 최종 대체가 됩니다. 시스템이 에러를 표시하면 RuntimeError가 발생합니다.

winsound.SND_FILENAME

sound 매개 변수는 WAV 파일의 이름입니다. SND_ALIAS와 함께 사용하지 마십시오.

winsound.SND_ALIAS

sound 매개 변수는 레지스트리의 소리 연결 이름입니다. 레지스트리에 그러한 이름이 없으면, SND_NODEFAULT도 함께 지정하지 않는 한 시스템 기본 소리를 재생합니다. 기본 소리가 등록되어 있지 않으면, RuntimeError를 일으킵니다. SND_FILENAME과 함께 사용하지 마십시오.

모든 Win32 시스템은 적어도 다음을 지원합니다; 대부분 시스템은 더 많은 것을 지원합니다:

PlaySound() 이름

해당 제어판 소리 이름

'SystemAsterisk'

Asterisk

'SystemExclamation'

Exclamation

'SystemExit'

Exit Windows

'SystemHand'

Critical Stop

'SystemQuestion'

Question

예를 들면:

import winsound
# Play Windows exit sound.
winsound.PlaySound("SystemExit", winsound.SND_ALIAS)

# Probably play Windows default sound, if any is registered (because
# "*" probably isn't the registered name of any sound).
winsound.PlaySound("*", winsound.SND_ALIAS)

winsound.SND_LOOP

소리를 반복해서 재생합니다. 블로킹을 피하고자 SND_ASYNC 플래그도 사용해야 합니다. SND_MEMORY와 함께 사용할 수 없습니다.

winsound.SND_MEMORY

PlaySound()에 대한 sound 매개 변수는 바이트열류 객체의 WAV 파일의 메모리 이미지입니다.

winsound.SND_PURGE

지정된 소리의 모든 인스턴스 재생을 중지합니다.

참고

이 플래그는 최신 윈도우 플랫폼에서 지원되지 않습니다.

winsound.SND_ASYNC

소리를 비동기적으로 재생할 수 있도록, 즉시 반환합니다.

winsound.SND_NODEFAULT

지정된 소리를 찾을 수 없을 때, 시스템 기본 소리를 재생하지 않습니다.

winsound.SND_NOSTOP

현재 재생 중인 소리를 중단하지 않습니다.

winsound.SND_NOWAIT

사운드 드라이버가 바쁘면 즉시 반환합니다.

참고

이 플래그는 최신 윈도우 플랫폼에서 지원되지 않습니다.

winsound.MB_ICONASTERISK

SystemDefault 소리를 재생합니다.

winsound.MB_ICONEXCLAMATION

SystemExclamation 소리를 재생합니다.

winsound.MB_ICONHAND

SystemHand 소리를 재생합니다.

winsound.MB_ICONQUESTION

SystemQuestion 소리를 재생합니다.

winsound.MB_OK

SystemDefault 소리를 재생합니다.