개발하는 리프터 꽃게맨입니다.
코드코치 파이썬 8월 2번째 과제 본문
1. 난이도 하
- https://www.acmicpc.net/problem/5800
- https://www.acmicpc.net/problem/2822
- https://www.acmicpc.net/problem/16435
2. 난이도 중
3. 난이도 상
https://www.acmicpc.net/problem/11729
4. 개체 지향 프로그래밍
MP3 프로그램 만들기
1. Music 클래스
(1) 음악
(2) 작곡가
(3) 음악의 총 길이
(4) 음악 경로
2. MP3 클래스
- 변수 -
(1) 음악 리스트
- 기능 -
(1) 음악 불러오기
(2) 음악 재생
(3) 음악 종료
(4) 저장된 전체 음악 리스트 보기
(5) 다음 음악 재생
(6) 이전 음악 재생
pip install simpleaudio
pip install pydub
실제로 음악을 재생하는 코드
from pydub import AudioSegment
import simpleaudio as sa
import threading
import time
# 재생 컨트롤러를 위한 전역 변수
play_obj = None
# 음악 재생 함수
def play_audio(file_path):
global play_obj
audio = AudioSegment.from_wav(file_path)
wave_obj = sa.WaveObject(audio.raw_data, num_channels=audio.channels, bytes_per_sample=audio.sample_width, sample_rate=audio.frame_rate)
play_obj = wave_obj.play()
# 스레드로 실행될 함수
def play_audio_thread(file_path):
threading.Thread(target=play_audio, args=(file_path,)).start()
# 사용자 입력을 기다리는 함수
def input_listener():
global play_obj
while True:
command = input("음악을 멈추려면 'stop'을 입력하세요: ")
if command.lower() == 'stop':
if play_obj:
play_obj.stop()
print("음악 재생이 멈췄습니다.")
break
else:
print("알 수 없는 명령어입니다. 'stop'을 입력하세요.")
# 오디오 파일 경로 설정
file_path = r'C:\Users\Ahnjiwoo\Desktop\Projects\windowAPIProject(24.02.05)\Client\Output\Binaries\Resources\Sounds\Stage1_BGM.wav'
# 비블로킹 형태로 음악 재생 시작
play_audio_thread(file_path)
print("음악 재생 시작")
# 사용자 입력 시작
input_thread = threading.Thread(target=input_listener)
input_thread.start()
# 메인 스레드는 입력 스레드가 종료될 때까지 대기
input_thread.join()
print("프로그램이 종료됩니다.")
'스터디 자료 > 코드코치 파이썬' 카테고리의 다른 글
코드코치 파이썬 8월 1주차 - 연습문제 (0) | 2024.08.01 |
---|---|
[Python] 파일 입축력 (0) | 2024.07.31 |