상세 컨텐츠

본문 제목

내일 3.14 파이데이 기념하여 3.14초로 재생하는 음악프로그램

코딩

by kimji3362 2022. 3. 13. 22:37

본문

import sys
from PyQt5.QtWidgets import QApplication, QMainWindow, QAction, QFileDialog, QLabel,QInputDialog, QMessageBox
from PyQt5.QtGui import QIcon
from PyQt5.QtGui import QPixmap
from PyQt5 import QtGui
import pygame
import time


class PIE(QMainWindow):

    def __init__(self):
        super().__init__()
        self.initUI()

    def initUI(self):
        global text
        text = 0
        global btn1
        global filemenu
        global filemenu2
        global loadfile
        global loadfile2
        self.setWindowTitle('Music player')
        self.setWindowIcon(QIcon('356749.png'))
        self.setGeometry(550, 200, 749, 704)
        self.lbl = QLabel(self)
        self.lbl.resize(749, 704)
        pixmap = QPixmap('메모리2.jpg')
        self.lbl.setPixmap(QPixmap(pixmap))
        self.label1 = QLabel('재생시간', self)
        self.label1.setFont(QtGui.QFont("굴림",15))
        self.label1.move(300, 30)
        self.label2 = QLabel(':', self)
        self.label2.setFont(QtGui.QFont("굴림",15))
        self.label2.move(410, 30)
        self.label2 = QLabel(str(text) + '초', self)
        self.label2.setFont(QtGui.QFont("굴림",15))
        self.label2.move(430, 30)
        menubar = self.menuBar()
        filemenu = menubar.addMenu("파일")
        filemenu2 = menubar.addMenu("재생시간")
        loadfile = QAction('파일 가져오기', self)
        loadfile2 = QAction('재생시간', self)
        loadfile.triggered.connect(self.add_open)
        loadfile2.triggered.connect(self.speed)
        filemenu.addAction(loadfile)
        filemenu2.addAction(loadfile2)
        self.show()

    def initUI2(self):
        self.setWindowTitle('Music player')
        self.setWindowIcon(QIcon('356749.png'))
        self.setGeometry(550, 200, 749, 704)
        self.show()

    def speed(self):
        global text
        text, ok = QInputDialog.getText(self, '재생시간', '재생시간(소수점 둘째자리까지):')
        if ok:
            self.label2.setText(text + '초')

    def add_open(self):
        global fileopen
        fileopen = ''
        fileopen = QFileDialog.getOpenFileName(self, '음악파일 선택', './')
        if fileopen[0] == '':
            self.initUI2()
            QMessageBox.information(self, "에러", "음악파일을 선택해주세요.")
        else:
            self.music()

    def music(self):
        try:
            pygame.mixer.init()

            pygame.mixer.music.load(str(fileopen[0]))

            pygame.mixer.music.play()
            begin = time.time()
            clock = pygame.time.Clock()
            print(text)
            if str(text) == str(0):
                pygame.mixer.music.pause()
                QMessageBox.information(self, "에러", "재생시간을 설정하세요.")
                self.initUI2()
            while pygame.mixer.music.get_busy():
                b = round(time.time(), 2) - begin
                if round(b, 2) == float(text):
                    pygame.mixer.music.pause()
        except:
            QMessageBox.information(self, "에러", "음악파일을 선택해주세요.")
            self.initUI2()
        self.initUI2()
    def stop(self):
        pygame.mixer.init()
        if pygame.mixer.music.get_busy():
            pygame.mixer.music.pause()

        else:
            pass
if __name__ == '__main__':
    app = QApplication(sys.argv)
    ex = PIE()
    sys.exit(app.exec_())