2017-09-12 101 views
0

我在做这项工作时遇到了一些问题。我想用播放列表播放音频文件。这里是我的代码:播放列表中的PyQT5媒体播放器

playlist = QMediaPlaylist() 
url = QUrl.fromLocalFile("/home/user/Downloads/ss.mp3") 
playlist.addMedia(QMediaContent(url)) 


player.setPlaylist(playlist) 
player.playlist().setCurrentIndex(0) 
player.play() 

的问题是,当我养活文件作为唯一的媒体源(player.serMedia())它的工作原理,但是当我运行上面的代码,音乐不玩!

这里有什么问题?

+0

适合我。也许你应该发布一个完整的,可运行的例子来证明问题。 – ekhumoro

+0

我刚才发现了这个问题。我发布了一个答案。 – pythonner

回答

0

在qt论坛搜索后的答案是我在创建播放列表时没有提供播放器对象。

 playlist = QMediaPlaylist(player) 
+0

这并不是真正的原因。在您的应用程序中,您需要保留对播放列表的引用,因为播放器不拥有它的所有权。如果你允许它超出范围,python会垃圾收集它。解决这个问题的一个方法是给播放列表一个父母(任何'QObject'都会做 - 它不一定是播放器)。但是你也可以将它存储为一个属性。 – ekhumoro

+0

啊,好吧,我明白你的意思了。现在对我来说更清楚了。谢谢! – pythonner