我正在尝试接收QAudioProbe的audioBufferProbed信号。我已经尝试了connect函数,但我没有正确使用它。我想在媒体播放时将信号值打印到控制台。
我使用的是Python3和PySide2 (Qt5.15)。
#!/bin/python3
from PySide2.QtMultimedia import QMediaPlayer, QMediaContent, QAudioProbe
from PySide2.QtCore import QUrl, QCoreApplication, QObject, Signal
import sys
def main():
app = QCoreApplication()
player = QMediaPlayer()
url = QUrl.fromLocalFile("/home/ubuntu/Downloads/sample2.mp3")
content = QMediaContent(url)
player.setMedia(content)
player.setVolume(50)
# probe = QAudioProbe()
# probe.setSource(player)
# QObject.connect(probe, Signal(audioBufferProbed(QAudioBuffer)), processProbe)
player.play()
ret = app.exec_()
sys.exit(ret)
def processProbe(probe):
print(probe)
if __name__ == "__main__":
main()
发布于 2021-03-01 11:04:36
您必须使用PySide2 (以及PyQt5) is的语法
#!/bin/python3
from PySide2.QtMultimedia import QMediaPlayer, QMediaContent, QAudioProbe
from PySide2.QtCore import QUrl, QCoreApplication, QObject, Signal
import sys
def main():
app = QCoreApplication()
player = QMediaPlayer()
url = QUrl.fromLocalFile("/home/ubuntu/Downloads/sample2.mp3")
content = QMediaContent(url)
player.setMedia(content)
player.setVolume(0)
probe = QAudioProbe()
probe.setSource(player)
probe.audioBufferProbed.connect(processProbe)
player.play()
ret = app.exec_()
sys.exit(ret)
def processProbe(buff):
print(buff.startTime())
if __name__ == "__main__":
main()
https://stackoverflow.com/questions/66416033
复制相似问题