猫史档案馆


【Python作品分享】daw-vocal【作品秀】

用户:vocalvocal查看:1 回复:3 评论:1 创建时间:2024-02-04T16:15:55


【作品展示】

center_image

 

【作品介绍】

v0.5测试beta

一个音乐播放器+录制器

可以开源

请帮忙完善

 

【作品源代码】

import sys
from PyQt5.QtWidgets import QApplication, QMainWindow, QLabel, QPushButton
from PyQt5.QtCore import Qt

class MusicDAW(QMainWindow):
    def __init__(self):
        super().__init__()
        self.initializeUI()

    def initializeUI(self):
        self.setWindowTitle('Music DAW')
        self.setGeometry(100, 100, 800, 600)

        # 创建菜单栏
        menubar = self.menuBar()
        fileMenu = menubar.addMenu('文件')
        editMenu = menubar.addMenu('编辑')
        viewMenu = menubar.addMenu('视图')

        # 创建工具栏
        toolbar = self.addToolBar('工具栏')
        recordButton = QPushButton('录制')
        playButton = QPushButton('播放')
        stopButton = QPushButton('停止')
        toolbar.addWidget(recordButton)
        toolbar.addWidget(playButton)
        toolbar.addWidget(stopButton)

        # 创建状态栏
        statusbar = self.statusBar()
        statusbar.showMessage('准备录制音乐')

        # 创建主要内容区域
        centralWidget = QLabel('这是主要的内容区域', self)
        centralWidget.setAlignment(Qt.AlignCenter)
        self.setCentralWidget(centralWidget)

        # 连接按钮的点击事件
        recordButton.clicked.connect(self.recordMusic)
        playButton.clicked.connect(self.playMusic)
        stopButton.clicked.connect(self.stopMusic)

    def recordMusic(self):
        # 实现录制音乐的逻辑
        statusbar = self.statusBar()
        statusbar.showMessage('正在录制音乐')

    def playMusic(self):
        # 实现播放音乐的逻辑
        statusbar = self.statusBar()
        statusbar.showMessage('正在播放音乐')

    def stopMusic(self):
        # 实现停止音乐的逻辑
        statusbar = self.statusBar()
        statusbar.showMessage('音乐已停止')

if __name__ == '__main__':
    app = QApplication(sys.argv)
    musicDAW = MusicDAW()
    musicDAW.show()
    sys.exit(app.exec_())

 

【提示】

部分含有Python第三方库相关内容的作品,在海龟编辑器网页端无法运行哦!如遇到这种情况,可以打开下面的链接,下载海龟编辑器客户端:

https://python.codemao.cn


回复

上一页1 页 / 共 1下一页
2minRain2minRain

咱这里有能用的代码 需要的话私聊咱(但是需要先进行一些修改,所以可以参考 但是别直接搬(有一些是为了适配我的应用平台的特殊代码

点赞0


评论


2minRain2minRain

package = "com.pts.music"
import os

from PySide6.QtCore import *  # type: ignore
from PySide6.QtGui import *  # type: ignore
from PySide6.QtWidgets import *  # type: ignore
import sys
from pygame import mixer
from tinytag import TinyTag
mixer.init()
playList = []

nowMusic = 0

class Ui_MainWindow(object):
    playing = False
    def setupUi(self, MainWindow):
        if not MainWindow.objectName():
            MainWindow.setObjectName(u"MainWindow")
        MainWindow.resize(371, 410)
        MainWindow.setWindowFlags(Qt.WindowMinimizeButtonHint)
        MainWindow.setFixedSize(MainWindow.width(), MainWindow.height())
        icon = QIcon()
        icon.addFile(u"./temp/image/Music.png", QSize(), QIcon.Normal, QIcon.On)
        MainWindow.setWindowIcon(icon)
        self.centralwidget = QWidget(MainWindow)
        self.centralwidget.setObjectName(u"centralwidget")
        self.label = QLabel(self.centralwidget)
        self.label.setObjectName(u"label")
        self.label.setGeometry(QRect(0, 20, 371, 41))
        font = QFont()
        font.setPointSize(11)
        self.label.setFont(font)
        self.label.setAlignment(Qt.AlignCenter)
        self.label_2 = QLabel(self.centralwidget)
        self.label_2.setObjectName(u"label_2")
        self.label_2.setGeometry(QRect(140, 60, 31, 16))
        self.label_3 = QLabel(self.centralwidget)
        self.label_3.setObjectName(u"label_3")
        self.label_3.setGeometry(QRect(170, 60, 211, 16))
        self.label_4 = QLabel(self.centralwidget)
        self.label_4.setObjectName(u"label_4")
        self.label_4.setGeometry(QRect(140, 80, 31, 16))
        self.label_5 = QLabel(self.centralwidget)
        self.label_5.setObjectName(u"label_5")
        self.label_5.setGeometry(QRect(170, 80, 211, 16))
        self.listWidget = QListWidget(self.centralwidget)
        self.listWidget.setObjectName(u"listWidget")
        self.listWidget.setGeometry(QRect(喵))
        self.pushButton_2 = QPushButton(self.centralwidget)
        self.pushButton_2.setObjectName(u"pushButton_2")
        self.pushButton_2.setGeometry(QRect(150, 140, 75, 24))
        self.pushButton_3 = QPushButton(self.centralwidget)
        self.pushButton_3.setObjectName(u"pushButton_3")
        self.pushButton_3.setGeometry(QRect(60, 140, 75, 24))
        self.pushButton_4 = QPushButton(self.centralwidget)
        self.pushButton_4.setObjectName(u"pushButton_4")
        self.pushButton_4.setGeometry(QRect(230, 140, 75, 24))
        self.label_6 = QLabel(self.centralwidget)
        self.label_6.setObjectName(u"label_6")
        self.label_6.setGeometry(QRect(60, 170, 31, 16))
        self.horizontalSlider = QSlider(self.centralwidget)
        self.horizontalSlider.setObjectName(u"horizontalSlider")
        self.horizontalSlider.setGeometry(QRect(100, 170, 160, 18))
        self.horizontalSlider.setOrientation(Qt.Horizontal)
        self.horizontalSlider.setMinimum(0)
        self.horizontalSlider.setMaximum(10)
        self.horizontalSlider.setValue(10)
        self.pushButton_5 = QPushButton(self.centralwidget)
        self.pushButton_5.setObjectName(u"pushButton_5")
        self.pushButton_5.setGeometry(QRect(80, 190, 75, 24))
        self.pushButton_6 = QPushButton(self.centralwidget)
        self.pushButton_6.setObjectName(u"pushButton_6")
        self.pushButton_6.setGeometry(QRect(160, 190, 75, 24))
        self.pushButton_7 = QPushButton(self.centralwidget)
        self.pushButton_7.setObjectName(u"pushButton_7")
        self.pushButton_7.setGeometry(QRect(290, 0, 75, 24))
        self.label_7 = QLabel(self.centralwidget)
        self.label_7.setObjectName(u"label_7")
        self.label_7.setGeometry(QRect(10, 194, 55, 16))
        font1 = QFont()
        font1.setPointSize(10)
        self.label_7.setFont(font1)
        MainWindow.setCentralWidget(self.centralwidget)

        self.retranslateUi(MainWindow)
        self.pushButton_7.clicked.connect(MainWindow.close)
        self.pushButton_5.clicked.connect(self.playList)
        self.listWidget.itemClicked.connect(self.play)
        self.pushButton_2.clicked.connect(self.pause)
        self.pushButton_4.clicked.connect(self.nextMusic)
        self.pushButton_3.clicked.connect(self.previous)
        self.horizontalSlider.valueChanged.connect(self.changeVolume)

        QMetaObject.connectSlotsByName(MainWindow)
    # setupUi

    def playList(self):
        self.listWidget.clear()
        global playList, reply
        import easygui as g
        reply = g.diropenbox()
        fileList = os.listdir(reply)
        for i in fileList:
            if ".mp3" in i :
                music = i
                playList.append(music)
        self.listWidget.addItems(playList)


    def play(self, item):
        global nowMusic, playing
        item2 = item.text()
        mixer.music.load(reply + "\\" +item2)
        mixer.music.play(1, 0)
        self.pushButton_2.setText(QCoreApplication.translate("MainWindow", u"| |", None))
        nowMusic = int(playList.index(item2))
        playing = True
        tag = TinyTag.get(reply + "\\" + item2)
        self.label.setText(QCoreApplication.translate("MainWindow", tag.title, None))
        self.label_3.setText(QCoreApplication.translate("MainWindow", tag.album, None))
        self.label_5.setText(QCoreApplication.translate("MainWindow", tag.artist, None))

    def pause(self):
        global playing
        if playing:
            mixer.music.pause()
            playing = False
            self.pushButton_2.setText(QCoreApplication.translate("MainWindow", u"▶", None))
        elif not playing:
            mixer.music.unpause()
            playing = True
            self.pushButton_2.setText(QCoreApplication.translate("MainWindow", u"| |", None))

    def nextMusic(self):
            global nowMusic
            try:
                nextMusic = playList[nowMusic + 1]
                mixer.music.stop()
                mixer.music.load(reply + "\\" + nextMusic)
                mixer.music.play(1, 0)
                tag = TinyTag.get(reply + "\\" + nextMusic)
                self.label.setText(QCoreApplication.translate("MainWindow", tag.title, None))
                self.label_3.setText(QCoreApplication.translate("MainWindow", tag.album, None))
                self.label_5.setText(QCoreApplication.translate("MainWindow", tag.artist, None))
                indexMu = playList.index(nextMusic)
                nowMusic += 1
            except:
                os.system("python.exe ../Application/" + package + "/tip.py")

    def previous(self):
            global nowMusic
            previous = playList[nowMusic - 1]
            mixer.music.stop()
            mixer.music.load(reply + "\\" + previous)
            mixer.music.play(1, 0)
            tag = TinyTag.get(reply + "\\" + previous)
            self.label.setText(QCoreApplication.translate("MainWindow", tag.title, None))
            self.label_3.setText(QCoreApplication.translate("MainWindow", tag.album, None))
            self.label_5.setText(QCoreApplication.translate("MainWindow", tag.artist, None))
            indexMu = playList.index(previous)
            nowMusic -= 1

    def changeVolume(self):
        Volume = self.horizontalSlider.value()
        volume = float(Volume)
        vol = volume / 10
        mixer.music.set_volume(vol)

点赞0


评论


2minRain2minRain

    def retranslateUi(self, MainWindow):
        MainWindow.setWindowTitle(QCoreApplication.translate("MainWindow", u"PyMusic Player", None))
        self.label.setText(QCoreApplication.translate("MainWindow", u"\u672a\u喵ad\u653e\u97f3\u4e50", None))
        self.label_2.setText(QCoreApplication.translate("MainWindow", u"\u4e13\u8f91\uff1a", None))
        self.label_3.setText(QCoreApplication.translate("MainWindow", u"\u672a\u喵ad\u653e\u97f3\u4e50", None))
        self.label_4.setText(QCoreApplication.translate("MainWindow", u"\u6b4c\u624b\uff1a", None))
        self.label_5.setText(QCoreApplication.translate("MainWindow", u"\u672a\u喵ad\u653e\u97f3\u4e50", None))
        self.pushButton_2.setText(QCoreApplication.translate("MainWindow", u"▶", None))
        self.pushButton_3.setText(QCoreApplication.translate("MainWindow", u"<", None))
        self.pushButton_4.setText(QCoreApplication.translate("MainWindow", u">", None))
        self.label_6.setText(QCoreApplication.translate("MainWindow", u"\u97f3\u91cf\uff1a", None))
        self.pushButton_5.setText(QCoreApplication.translate("MainWindow", u"\u9009\u62e9\u6587\u4ef6\u5939", None))
        self.pushButton_6.setText(QCoreApplication.translate("MainWindow", u"\u4e0b\u8f7d\u97f3\u4e50", None))
        self.pushButton_7.setText(QCoreApplication.translate("MainWindow", u"X  \u9000\u51fa", None))
        self.label_7.setText(QCoreApplication.translate("MainWindow", u"\u喵ad\u653e\u5217\u8868", None))
    # retranslateUi

if __name__ == "__main__":
    app = QApplication(sys.argv)
    MainWindow = QMainWindow()
    ui = Ui_MainWindow()
    ui.setupUi(MainWindow)
    MainWindow.show()

点赞0


评论