如果playAudioFile執行 in,則圖示已更改,但play()方法不起作用。每次條件都是假的。
此代碼適用于某些檔案,但我看不到規則。格式化檔案和檔案的長度無關緊要。我嘗試使用 .wav、.mp3 和 .mp4 進行嘗試。
在 Windows 播放器中,每個檔案都有效。
import sys
import os
from PyQt5.QtCore import QUrl
from PyQt5.uic import loadUi
from PyQt5.QtWidgets import QApplication, QStackedWidget, QMainWindow, QStyle
from PyQt5.QtMultimedia import QMediaPlayer, QMediaContent
class Term2(QMainWindow):
def __init__(self):
super().__init__()
loadUi('screen2.ui', self)
# create player
self.player = QMediaPlayer()
self.choose_music()
self.btn_play.clicked.connect(self.playAudioFile)
# play audio
def choose_music(self):
filepath = os.path.join(os.getcwd(), 'pc.wav')
url = QUrl.fromLocalFile(filepath)
content = QMediaContent(url)
self.player.setMedia(content)
print(filepath)
def playAudioFile(self):
if self.player.state() == QMediaPlayer.PlayingState:
self.player.pause()
self.btn_play.setIcon(
self.style().standardIcon(QStyle.SP_MediaPlay)
)
else:
self.player.play()
self.btn_play.setIcon(
self.style().standardIcon(QStyle.SP_MediaPause)
)
app = QApplication(sys.argv)
widget = QStackedWidget()
t2 = Term2()
widget.setWindowTitle('Project)
widget.setFixedWidth(700)
widget.setFixedHeight(400)
widget.addWidget(t2)
widget.show()
sys.exit(app.exec_())
我在 Qt Designer 中創建了按鈕并匯入loadUi('screen2.ui', self)
uj5u.com熱心網友回復:
我會使用來自不同庫的音頻播放器,那個播放器看起來很舊。我建議研究 playsound 或 pygame 音頻混音器。Playsound 的作業原理如下:
from playsound import playsound
playsound(path_to_audio_file)
它的功能非常有限,但簡單、可靠,適用于所有 mp3 和 wav 格式。這是一個教程:https ://www.geeksforgeeks.org/play-sound-in-python/
如果您想要更高級的東西,我會嘗試 pygames 音頻混音器,您可以播放內容、控制音量、計時等。最基本的:
from pygame import mixer
mixer.init()
mixer.music.load(path_to_audio_file)
mixer.music.play()
混音器的最佳格式是 wav,但其他格式可能也可以。這個教程: https ://www.geeksforgeeks.org/python-playing-audio-file-in-pygame/
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/439089.html
標籤:Python python-3.x 声音的 pyqt5 媒体播放器
下一篇:新列的熊貓資料框條件填充
