목차
- 파이썬 pydub 활용 1개 MP3 음악파일 구간 나눠 저장하기 이전 포스팅 예제 참고 학습
- 파이썬 eyed3 활용 MP3 총 재생 시간 구하기 이전 포스팅 예제 참고 학습
- 파이썬 pygame 활용 MP3 음악 파일 재생, 중지 이전 포스팅 예제 참고 학습
- 파이썬 MP3 총 재생시간 구하기 예제
- 파이썬 MP3 총 재생시간 만큼 마우스 드래그 가능한 프로그래스바 버튼 만들기 예제
파이썬 pydub 활용 1개 MP3 음악파일 구간 나눠 저장하기 이전 포스팅 예제 참고 학습
이전 포스팅에서 파이썬 라이브러리인 pydub를 사용하여 1개의 MP3 음악 파일을 구간별로 나누어 저장하는 방법을 배웠습니다. pydub는 오디오를 자르거나 합칠 수 있는 기능들을 처리를 쉽게 할 수 있는 도구 중 하나입니다. 이전 예제에서는 이러한 pydub을 활용하여 파이썬에서 1개의 MP3를 구간을 설정하여 2개의 MP3 파일로 나눠 저장하는 예제를 알아보았습니다. 해당 내용이 궁금하시다면 아래 링크를 참고해주세요.
2023.09.11 - [Python] - [Python] 파이썬 MP3 음악 구간 나눠 저장하기 예제(pydub, eyed3, ffmpeg)
파이썬 eyed3 활용 MP3 총 재생 시간 구하기 이전 포스팅 예제 참고 학습
이전 포스팅에서 파이썬 라이브러리인 eyed3를 활용하여 MP3 파일의 총 재생 시간을 구하는 방법을 배웠습니다. eyed3는 MP3 파일의 메타데이터를 처리하는 데 유용한 도구 중 하나입니다. 예제에서는 eyed3 모듈을 활용하여 로컬에 저장된 MP3 파일이 총 몇 초의 재생 시간을 가지는지 값을 확인하고 가져왔습니다. 이러한 총 재생 시간을 가지고 파이썬에서 다양한 MP3 활용 프로그래밍이 가능하니다. 해당 내용이 궁금하시다면 아래 링크를 참고해주세요.
2023.09.11 - [Python] - [Pytohn] 파이썬 MP3 총 음악 재생 시간 구하기 예제(eyed3)
파이썬 pygame 활용 MP3 음악 파일 재생, 중지 이전 포스팅 예제 참고 학습
마지막으로 이전 포스팅에서 파이썬 라이브러리인 pygame을 사용하여 MP3 음악 파일을 재생하고 중지하는 방법을 배웠습니다. pygame은 게임 개발을 위한 라이브러리이지만 오디오 재생과 관련된 기능도 제공합니다. 특히 재생 및 중지 예제를 직접 코드를 작성하여 실행해보며 파이썬 환경에서 MP3 실행 방법에 대해 알아보았습니다.
2023.09.11 - [Python] - [Pytohn] 파이썬 MP3 음악 파일 재생, 중지 예제(pygame)
파이썬 MP3 총 재생시간 구하기 예제
아래는 MP3 파일의 총 재생 시간을 구하는 예제 코드입니다. 이 코드는 eyed3 라이브러리를 사용하여 MP3 파일의 총 재생 시간을 출력합니다. 아래 예제에서는 이 재생 시간을 가지고 마우스 클릭 및 드래그가 가능한 프로그래스바 버튼을 만들어보겠습니다.
import eyed3
def get_mp3_duration(file_path):
audiofile = eyed3.load(file_path)
if audiofile.tag and audiofile.info:
minutes, seconds = divmod(audiofile.info.time_secs, 60)
return f"{int(minutes)}분 {int(seconds)}초"
else:
return "재생 시간을 가져올 수 없습니다."
mp3_file = "/tmp/test.mp3"
duration = get_mp3_duration(mp3_file)
print(f"MP3 파일의 총 재생 시간: {duration}")
파이썬 MP3 총 재생시간 만큼 마우스 드래그 가능한 프로그래스바 버튼 만들기 예제
아래는 MP3 파일의 총 재생 시간만큼 마우스 드래그 가능한 프로그래스바 버튼을 만드는 예제 코드입니다. PyQt5 모듈이 필요합니다. 만약 없으시다면 sudo pip3 install pyqt5 명령으로 설치해주세요.
import sys
import eyed3
from PyQt5.QtWidgets import QApplication, QMainWindow, QSlider, QLabel
from PyQt5.QtCore import Qt
def get_mp3_duration(file_path):
audiofile = eyed3.load(file_path)
if audiofile.tag and audiofile.info:
return audiofile.info.time_secs
else:
return 0
class MyWindow(QMainWindow):
def __init__(self):
super().__init__()
self.setWindowTitle("MP3 재생 프로그래스바")
self.setGeometry(100, 100, 400, 200)
mp3_file = "/tmp/test.mp3"
self.duration = get_mp3_duration(mp3_file) # MP3 파일 재생 시간 (초)
self.slider = QSlider(Qt.Horizontal, self)
self.slider.setGeometry(50, 80, 300, 20)
self.slider.setMinimum(0)
self.slider.setMaximum(self.duration)
self.label = QLabel(self)
self.label.setGeometry(180, 110, 60, 20)
self.label.setText("0:00")
self.slider.valueChanged.connect(self.update_label)
def update_label(self):
current_value = self.slider.value()
minutes, seconds = divmod(current_value, 60)
self.label.setText(f"{minutes}:{seconds:02}")
app = QApplication(sys.argv)
window = MyWindow()
window.show()
sys.exit(app.exec_())