国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

PyQt5實現(xiàn)簡易音樂播放器

這篇具有很好參考價值的文章主要介紹了PyQt5實現(xiàn)簡易音樂播放器。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

PyQt5實現(xiàn)簡易音樂播放器

  1. 環(huán)境
  1. vscode
  2. python 3.10.0
  3. PyQt5 5.15.4
  1. 功能目標

能夠讀取本地的音樂文件,并實現(xiàn)播放的開關、曲目的切換和音量的加減

  1. 具體實現(xiàn)
    1. 新建一個文件夾,在文件夾下再新建一個文件夾,命名為music,將歌曲放入其中。在vscode中打開該文件夾。
      pyqt5 音樂播放器,PyQt5實踐,ui,python,qt5,音視頻
    2. 在QtDesigner中搭建出UI界面,并使用pyuic工具轉換為py文件
      pyqt5 音樂播放器,PyQt5實踐,ui,python,qt5,音視頻
    3. 新建main.py文件,用于界面的顯示
import sys
from PyQt5 import QtCore, QtWidgets
from PyQt5.QtWidgets import QMainWindow
from Ui_musicplayer import Ui_Dialog
 
class MainWin(QMainWindow, Ui_Dialog):
    def __init__(self, parent=None):
        super(MainWin, self).__init__(parent)
        self.setupUi(self)
        
if __name__ == '__main__':
	# 屏幕適配處理
    QtCore.QCoreApplication.setAttribute(QtCore.Qt.AA_EnableHighDpiScaling)
    app = QtWidgets.QApplication(sys.argv)
    MainWindow = QtWidgets.QMainWindow()
    main = MainWin()
    main.show()
    sys.exit(app.exec_())
4. 通過os.listdir()函數(shù)完成歌曲文件的讀取
... # 省略之前出現(xiàn)的內(nèi)容,后面的...同理
import os
 
class MainWin(QMainWindow, Ui_Dialog): 
    def __init__(self, parent=None):
        super(MainWin, self).__init__(parent)
        self.setupUi(self)
        # 歌曲存放目錄
        self.mp3filedir = "./music/"
        # 用于存放歌曲名稱的空列表
        self.music_list = []
        # 當前播放歌曲在列表中的位置,開始為0
        self.music_index = 0
        # 從歌曲存放目錄中讀取所有文件名,并放入列表中
        for file_name in os.listdir(self.mp3filedir):
            self.music_list.append(file_name)
        # 獲取歌曲總數(shù)
        self.music_all_num = len(self.music_list)
5. 新建 QMediaPlayer對象,并完成音量的設置
...
from PyQt5.QtCore import QUrl
from PyQt5.QtMultimedia import QMediaPlayer, QMediaContent
 
class MainWin(QMainWindow, Ui_Dialog):
    def __init__(self, parent=None):
        super(MainWin, self).__init__(parent)
        self.setupUi(self)
        ...
        # 新建QMediaPlayer對象
        self.player = QMediaPlayer()
        # 當前播放狀態(tài)標志位,F(xiàn)alse表示當前處于暫停狀態(tài),True表示當前處于播放狀態(tài)
        self.player_state = False
        # 音量設定
        self.voice_level = 50
        # 音量設置,0-100,設置為0將靜音
        self.player.setVolume(self.voice_level)
        # 拼接歌曲存放目錄和歌曲名成完整路徑,獲取到文件
        self.player.setMedia(QMediaContent(QUrl.fromLocalFile(self.mp3filedir + self.music_list[self.music_index])))
6. 歌曲名字的展示
...
 
class MainWin(QMainWindow, Ui_Dialog):
    
    def __init__(self, parent=None):
        super(MainWin, self).__init__(parent)
        self.setupUi(self)
       ...
        # 歌曲名展示
        self.music_detail()

    def music_detail(self):
        # 根據(jù)當前歌曲位置索引獲取歌曲名
        self.label.setText(self.music_list[self.music_index])

效果圖

pyqt5 音樂播放器,PyQt5實踐,ui,python,qt5,音視頻文章來源地址http://www.zghlxwxcb.cn/news/detail-537096.html

7. 播放按鈕綁定函數(shù),t實現(xiàn)歌曲播放狀態(tài)的切換
...
 
class MainWin(QMainWindow, Ui_Dialog):
    
    def __init__(self, parent=None):
    	super(MainWin, self).__init__(parent)
        self.setupUi(self)
       ...
        # 播放按鈕綁定函數(shù)
        self.pushButton.clicked.connect(self.player_state_change)

    def player_state_change(self):
        # 通過self.player_state獲取當前播放狀態(tài),再進行切換
        if self.player_state:
        	# 停止播放
            self.player.stop()
            # 播放狀態(tài)標志設置為False
            self.player_state = False
        else:
        	# 播放當前音頻
            self.player.play()
            # 播放狀態(tài)標志設置為True
            self.player_state = True
8. 歌曲上下切換按鈕綁定函數(shù),實現(xiàn)歌曲的切換
...
 
class MainWin(QMainWindow, Ui_Dialog):
    
    def __init__(self, parent=None):
        super(MainWin, self).__init__(parent)
        self.setupUi(self)
  		...
  		# 下一首按鈕點擊事件綁定函數(shù)
        self.pushButton_2.clicked.connect(self.next_music)
        # 上一首按鈕點擊事件綁定函數(shù)
        self.pushButton_3.clicked.connect(self.previous_music)

    def next_music(self):
    	# 如果當前播放的音頻位置索引為列表中最后一首,則位置索引置為0,回到列表開頭
        if self.music_index == self.music_all_num-1:
            self.music_index = 0
        # 否則位置索引加1
        else:
            self.music_index += 1
        # 根據(jù)位置索引獲取歌曲名,并和歌曲存放目錄拼接獲取文件
        self.player.setMedia(QMediaContent(QUrl.fromLocalFile(self.mp3filedir + self.music_list[self.music_index])))
        # 歌曲名展示更新
        self.music_detail()
        # 進行播放
        self.player.play()

    def previous_music(self):
        # 如果當前播放的音頻位置索引為列表中第一首,則位置索引置為列表長度減一,到列表末尾
        if self.music_index == 0:
            self.music_index = self.music_all_num - 1
        # 否則位置索引減1
        else:
            self.music_index -= 1
        # 根據(jù)位置索引獲取歌曲名,并和歌曲存放目錄拼接獲取文件
        self.player.setMedia(QMediaContent(QUrl.fromLocalFile(self.mp3filedir + self.music_list[self.music_index])))
        # 歌曲名展示更新
        self.music_detail()
        # 進行播放
        self.player.play()

9. 音量的增減,直接修改音量設定值再執(zhí)行次音量設定函數(shù)即可
...
 
class MainWin(QMainWindow, Ui_Dialog):
    
    def __init__(self, parent=None):
        super(MainWin, self).__init__(parent)
        self.setupUi(self)
        ...
        self.pushButton_4.clicked.connect(self.voice_add)
        self.pushButton_5.clicked.connect(self.voice_reduce)
    
    def voice_add(self):
        if self.voice_level < 100:
            self.voice_level += 10
        self.player.setVolume(self.voice_level)

    def voice_reduce(self):
        if self.voice_level > 0:
            self.voice_level -= 10
        self.player.setVolume(self.voice_level)
  1. 主函數(shù)代碼匯總
import sys
import os
from PyQt5 import QtCore, QtWidgets
from PyQt5.QtWidgets import QMainWindow
from PyQt5.QtCore import QUrl
from PyQt5.QtMultimedia import QMediaPlayer, QMediaContent
from Ui_musicplayer import Ui_Dialog
 
class MainWin(QMainWindow, Ui_Dialog):
    
    def __init__(self, parent=None):
        super(MainWin, self).__init__(parent)
        self.setupUi(self)
        # 新建QMediaPlayer對象
        self.player = QMediaPlayer()
        # 當前播放狀態(tài)標志位,F(xiàn)alse表示當前處于暫停狀態(tài),True表示當前處于播放狀態(tài)
        self.player_state = False
        # 歌曲存放目錄
        self.mp3filedir = "./music/"
        # 用于存放歌曲名稱的空列表
        self.music_list = []
        # 當前播放歌曲在列表中的位置
        self.music_index = 0
        # 音量設置
        self.voice_level = 50
        # 從歌曲存放目錄中讀取所有文件名,并放入列表中
        for file_name in os.listdir(self.mp3filedir):
            self.music_list.append(file_name)
        # 獲取歌曲總數(shù)
        self.music_all_num = len(self.music_list)
        # 拼接歌曲存放目錄和歌曲名成完整路徑,獲取到文件
        self.player.setMedia(QMediaContent(QUrl.fromLocalFile(self.mp3filedir + self.music_list[self.music_index])))
        # 文件名展示
        self.music_detail()
        # 音量設置
        self.player.setVolume(self.voice_level)
        # 播放按鈕綁定函數(shù)
        self.pushButton.clicked.connect(self.player_state_change)
        # 下一首按鈕綁定函數(shù)
        self.pushButton_2.clicked.connect(self.next_music)
        # 上一首按鈕綁定函數(shù)
        self.pushButton_3.clicked.connect(self.previous_music)
        # 音量加按鈕綁定函數(shù)
        self.pushButton_4.clicked.connect(self.voice_add)
        # 音量減按鈕綁定函數(shù)
        self.pushButton_5.clicked.connect(self.voice_reduce)

    def player_state_change(self):
        # 通過self.player_state獲取當前播放狀態(tài),再進行切換
        if self.player_state:
        	# 停止播放
            self.player.stop()
            # 播放狀態(tài)標志設置為False
            self.player_state = False
        else:
        	# 播放當前音頻
            self.player.play()
            # 播放狀態(tài)標志設置為True
            self.player_state = True

    def next_music(self):
    	# 如果當前播放的音頻位置索引為列表中最后一首,則位置索引置為0,回到列表開頭
        if self.music_index == self.music_all_num-1:
            self.music_index = 0
        # 否則位置索引加1
        else:
            self.music_index += 1
        # 根據(jù)位置索引獲取歌曲名,并和歌曲存放目錄拼接獲取文件
        self.player.setMedia(QMediaContent(QUrl.fromLocalFile(self.mp3filedir + self.music_list[self.music_index])))
        # 歌曲名展示更新
        self.music_detail()
        # 進行播放
        self.player.play()

    def previous_music(self):
        # 如果當前播放的音頻位置索引為列表中第一首,則位置索引置為列表長度減一,到列表末尾
        if self.music_index == 0:
            self.music_index = self.music_all_num - 1
        # 否則位置索引減1
        else:
            self.music_index -= 1
        # 根據(jù)位置索引獲取歌曲名,并和歌曲存放目錄拼接獲取文件
        self.player.setMedia(QMediaContent(QUrl.fromLocalFile(self.mp3filedir + self.music_list[self.music_index])))
        # 歌曲名展示更新
        self.music_detail()
        # 進行播放
        self.player.play()

    def music_detail(self):
        self.label.setText(self.music_list[self.music_index])
    
    def voice_add(self):
        if self.voice_level < 100:
            self.voice_level += 10
        self.player.setVolume(self.voice_level)

    def voice_reduce(self):
        if self.voice_level > 0:
            self.voice_level -= 10
        self.player.setVolume(self.voice_level)
        


if __name__ == '__main__':
    # 屏幕分辨率適配
    QtCore.QCoreApplication.setAttribute(QtCore.Qt.AA_EnableHighDpiScaling)
    app = QtWidgets.QApplication(sys.argv)
    MainWindow = QtWidgets.QMainWindow()
    main = MainWin()
    main.show()
    sys.exit(app.exec_())
  1. 布局文件
# -*- coding: utf-8 -*-
from PyQt5 import QtCore, QtGui, QtWidgets

class Ui_Dialog(object):
    def setupUi(self, Dialog):
        Dialog.setObjectName("Dialog")
        Dialog.resize(400, 300)
        self.groupBox = QtWidgets.QGroupBox(Dialog)
        self.groupBox.setGeometry(QtCore.QRect(0, 10, 401, 251))
        self.groupBox.setObjectName("groupBox")
        self.label = QtWidgets.QLabel(self.groupBox)
        self.label.setGeometry(QtCore.QRect(10, 20, 381, 221))
        self.label.setAlignment(QtCore.Qt.AlignCenter)
        self.label.setObjectName("label")
        self.layoutWidget = QtWidgets.QWidget(Dialog)
        self.layoutWidget.setGeometry(QtCore.QRect(0, 270, 401, 25))
        self.layoutWidget.setObjectName("layoutWidget")
        self.horizontalLayout = QtWidgets.QHBoxLayout(self.layoutWidget)
        self.horizontalLayout.setContentsMargins(0, 0, 0, 0)
        self.horizontalLayout.setObjectName("horizontalLayout")
        self.pushButton_4 = QtWidgets.QPushButton(self.layoutWidget)
        self.pushButton_4.setObjectName("pushButton_4")
        self.horizontalLayout.addWidget(self.pushButton_4)
        self.pushButton_2 = QtWidgets.QPushButton(self.layoutWidget)
        self.pushButton_2.setObjectName("pushButton_2")
        self.horizontalLayout.addWidget(self.pushButton_2)
        self.pushButton = QtWidgets.QPushButton(self.layoutWidget)
        self.pushButton.setObjectName("pushButton")
        self.horizontalLayout.addWidget(self.pushButton)
        self.pushButton_3 = QtWidgets.QPushButton(self.layoutWidget)
        self.pushButton_3.setObjectName("pushButton_3")
        self.horizontalLayout.addWidget(self.pushButton_3)
        self.pushButton_5 = QtWidgets.QPushButton(self.layoutWidget)
        self.pushButton_5.setObjectName("pushButton_5")
        self.horizontalLayout.addWidget(self.pushButton_5)

        self.retranslateUi(Dialog)
        QtCore.QMetaObject.connectSlotsByName(Dialog)

    def retranslateUi(self, Dialog):
        _translate = QtCore.QCoreApplication.translate
        Dialog.setWindowTitle(_translate("Dialog", "Dialog"))
        self.groupBox.setTitle(_translate("Dialog", "詳情"))
        self.label.setText(_translate("Dialog", "TextLabel"))
        self.pushButton_4.setText(_translate("Dialog", "音量+"))
        self.pushButton_2.setText(_translate("Dialog", "上一首"))
        self.pushButton.setText(_translate("Dialog", "播放"))
        self.pushButton_3.setText(_translate("Dialog", "下一首"))
        self.pushButton_5.setText(_translate("Dialog", "音量-"))

到了這里,關于PyQt5實現(xiàn)簡易音樂播放器的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。如若轉載,請注明出處: 如若內(nèi)容造成侵權/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領支付寶紅包贊助服務器費用

相關文章

  • 前端 用HTML,CSS, JS 寫一個簡易的音樂播放器

    這個實現(xiàn)了基本的播放/暫停、歌曲切換、音量控制、進度條控制和顯示歌曲信息等功能,同時還支持播放模式切換和歌曲列表操作。不過這只是一個簡單的示例,實際上還有很多功能需要進一步完善和優(yōu)化,例如: 支持歌詞顯示和同步 支持播放列表編輯和保存 支持拖拽上傳

    2024年02月04日
    瀏覽(30)
  • Python輕松實現(xiàn)音樂播放器

    Python輕松實現(xiàn)音樂播放器

    來個新玩意就是教大家如何用python來制作一個音樂播放器 希望對大家有所幫助哈哈 你們也可以嘗試自己做做 先給你們展示展示最簡單的,只需要九行代碼 知識點和所需模塊 python基礎知識 requests庫 time pygame tkinter 線程 環(huán)境 windows pycharm 2021.2 python 3.8 ok,直接說上完整代碼 !

    2024年02月11日
    瀏覽(27)
  • Qt實現(xiàn)本地音樂播放器

    Qt實現(xiàn)本地音樂播放器

    ?mainwindow.h mainwindow.cpp qss: 源碼:Qt與學習通頁面: 記錄與Qt相關的代碼 - Gitee.com

    2024年02月12日
    瀏覽(30)
  • 學習筆記(1)——粵嵌gec6818實現(xiàn)電子相冊,音樂播放器,視頻播放器。

    學習筆記(1)——粵嵌gec6818實現(xiàn)電子相冊,音樂播放器,視頻播放器。

    (1)設計一個初始界面,并且設置電子相冊,音樂播放器,視頻播放器三個觸摸按鍵。 (2)電子相冊——能夠實現(xiàn)相冊的幻燈片功能,實現(xiàn)相冊左右滑動切換相片。 (3)音樂播放器實現(xiàn)——切歌,播放和暫停功能。 (4)視頻播放器實現(xiàn)——播放、暫停、音量大小、快進倒

    2024年02月11日
    瀏覽(44)
  • Android Studio 實現(xiàn)音樂播放器

    Android Studio 實現(xiàn)音樂播放器

    ?? 文章末尾有獲取完整項目源碼方式 ?? ????????Android初學者開發(fā)第一個完整的實例項目應該就屬《音樂播放器》了,項目包含SQLlit數(shù)據(jù)庫的使用、listview、Fragment、等。話不多說先上成品: Android Studio 音樂播放器 圖片效果展示: 1.啟動頁效果 2.登錄頁效果 3.注冊頁效果

    2024年02月06日
    瀏覽(24)
  • Kotlin實現(xiàn)簡單的音樂播放器

    Kotlin實現(xiàn)簡單的音樂播放器

    關于音樂播放器,我真的是接觸比較多,聽歌作為我第一大愛好,之前也用Java設計過音樂播放器,感興趣的同學可以閱讀:Android Studio如何實現(xiàn)音樂播放器(簡單易上手)和 Android Studio實現(xiàn)音樂播放器2.0 理論知識 掌握Kotlin面向對象的軟件開發(fā)方面的基礎知識。 鞏固前期Act

    2024年02月10日
    瀏覽(18)
  • Django實現(xiàn)簡單的音樂播放器 4

    Django實現(xiàn)簡單的音樂播放器 4

    在原有音樂播放器功能基礎上,增加上傳音樂功能。 ?效果: 目錄 配置上傳路徑 配置路由 視圖處理歌曲 引入類庫 保存歌曲文件 模板上傳 設置菜單列表 設置菜單列表樣式 腳本設置 上傳效果 1.顯示菜單列表 2.點擊上傳歌曲 3.上傳完成 4.查看保存文件 增加數(shù)據(jù)庫操作 修改驗

    2024年02月15日
    瀏覽(24)
  • 微信小程序實現(xiàn)音樂播放器(1)

    微信小程序實現(xiàn)音樂播放器(1)

    代碼涉及的主要文件有: app.json app.wxss pages/music/music.json pages/music/music.wxml pages/music/music.wxss pages/music/music.js 另外,你可能需要的圖片資源,在這里! BackgroundAudioManager實現(xiàn)背景音樂 imzusheng / netease-music-uniapp

    2024年02月09日
    瀏覽(24)
  • Django實現(xiàn)簡單的音樂播放器 3

    Django實現(xiàn)簡單的音樂播放器 3

    ?在原有音樂播放器上請求方式優(yōu)化和增加加載本地音樂功能。 效果: 目錄 播放列表優(yōu)化 設置csrf_token 前端改為post請求 視圖端增加post驗證 加載歌曲 視圖 設置路由 模板 加載layui css 加載layui js 增加功能列表 功能列表腳本實現(xiàn) 最終效果 總結 原有get請求改為post請求。 設置

    2024年02月12日
    瀏覽(20)
  • Django實現(xiàn)簡單的音樂播放器 1

    Django實現(xiàn)簡單的音樂播放器 1

    使用django框架開發(fā)一個簡單的音樂播放器。 效果: 目錄 環(huán)境準備 安裝django 創(chuàng)建項目 創(chuàng)建應用 注冊應用 配置數(shù)據(jù)庫 設置數(shù)據(jù)庫配置 設置pymysql庫引用 創(chuàng)建數(shù)據(jù)庫 創(chuàng)建數(shù)據(jù)表 生成表遷移文件 執(zhí)行表遷移 配置時區(qū) 配置語言 配置子應用路由 在player應用目錄下創(chuàng)建urls.py文件

    2024年02月12日
    瀏覽(24)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領取紅包,優(yōu)惠每天領

二維碼1

領取紅包

二維碼2

領紅包