处理来自QAudioProbe的信号

2024-09-30 03:26:12 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试接收来自QAudioProbe的音频信号。我尝试了连接功能,但没有正确使用。我想在媒体播放时将信号值打印到控制台

我正在使用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()

Tags: fromimportsignal信号mainsysprobeplayer
1条回答
网友
1楼 · 发布于 2024-09-30 03:26:12

您必须使用PySide2(以及PyQt5)的语法是sender.signal.connect(receiver.slot)

#!/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()

相关问题 更多 >

    热门问题