首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用Python、PyQt和Phonon播放mp3

使用Python、PyQt和Phonon播放mp3
EN

Stack Overflow用户
提问于 2009-07-04 22:47:09
回答 3查看 11.3K关注 0票数 7

我一整天都在尝试用Python找出Qt的音素库。

我的长期目标是看看是否可以让它播放mms://流,但由于我在任何地方都找不到这样的实现,所以我会自己弄清楚这一部分。(我想,如果没有什么大问题的话,如果有人对此有更多了解的话,我会把它放在那里。)

无论如何,我认为我应该从我在网上找到的一个工作示例中反向工作。这将启动文件浏览器并播放指定的mp3文件。我想去掉文件浏览器的东西,把它简化为执行脚本并让它使用硬编码路径播放Mp3文件的要点。

我假设我的问题是对setCurrentSource()和指定数据类型的误解。(请参阅:http://www.riverbankcomputing.co.uk/static/Docs/PyQt4/html/phonon-mediasource.html#fileName)

我的问题有点宽泛,因为对理解声子的任何帮助都会非常感谢。

代码语言:javascript
复制
import sys

from PyQt4.QtGui import QApplication, QMainWindow, QDirModel, QColumnView
from PyQt4.QtGui import QFrame
from PyQt4.QtCore import SIGNAL
from PyQt4.phonon import Phonon

class MainWindow(QMainWindow):

    m_model = QDirModel()

    def __init__(self):
        QMainWindow.__init__(self)
        self.m_fileView = QColumnView(self)
        self.m_media = None

        self.setCentralWidget(self.m_fileView)
        self.m_fileView.setModel(self.m_model)
        self.m_fileView.setFrameStyle(QFrame.NoFrame)

        self.connect(self.m_fileView,
            SIGNAL("updatePreviewWidget(const QModelIndex &)"), self.play)

    def play(self, index):
        self.delayedInit()
        self.m_media.setCurrentSource(
            Phonon.MediaSource(self.m_model.filePath(index)))
        self.m_media.play()

    def delayedInit(self):
        if not self.m_media:
            self.m_media = Phonon.MediaObject(self)
            audioOutput = Phonon.AudioOutput(Phonon.MusicCategory, self)
            Phonon.createPath(self.m_media, audioOutput)

def main():
    app = QApplication(sys.argv)
    QApplication.setApplicationName("Phonon Tutorial 2 (Python)")
    mw = MainWindow()
    mw.show()
    sys.exit(app.exec_())

if __name__ == '__main__':
    main()
EN

回答 3

Stack Overflow用户

发布于 2009-07-12 15:03:54

Phonon在不同的平台上支持不同的音频文件格式,使用系统自己对媒体格式的支持,因此可能是您的系统不提供播放MP3文件的库。当然,在某些Linux发行版上不支持MP3。如果您使用的是Linux,请查看以下页面,了解有关启用MP3支持的信息:

http://doc.qt.io/qt-4.8/phonon-overview.html#linux

诊断Phonon媒体格式问题的另一种方法是运行Qt提供的功能示例:

http://doc.qt.io/qt-4.8///qt-phonon-capabilities-example.html

这应该会告诉您系统支持哪些媒体格式。

票数 3
EN

Stack Overflow用户

发布于 2010-04-02 04:30:20

delayedInit方法中创建MediaObject,如下所示:

代码语言:javascript
复制
def delayedInit(self):
    if not self.m_media:
       self.m_media = Phonon.createPlayer(Phonon.MusicCategory)
票数 1
EN

Stack Overflow用户

发布于 2017-11-04 02:08:08

如果Phonon没有输出音频或视频,但没有抛出任何错误。您可能只需要使用sudo apt-get install phonon-backend-gstreamer,也可以使用sudo apt-get install libphonon-dev

Phonon静默地使用gstreamer或vlc的后端,所以当它不在那里时,没有错误,但也没有功能。在运行这些命令后,我能够在我的覆盆子pi上听到phonon的声音

希望这能在未来对某些人有所帮助。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1083118

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档