2017-09-12 86 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

그건 사실 이유가 아닙니다. 응용 프로그램에서는 플레이어가 소유권을 가지고 있지 않기 때문에 재생 목록에 대한 참조를 유지해야합니다. 범위를 벗어나는 것을 허용하면, 파이썬은 그것을 가비지 수집 할 것입니다. 이 문제를 해결할 수있는 한 가지 방법은 재생 목록을 부모에게 제공하는 것입니다 (모든 'QObject'는 플레이어가 될 필요는 없습니다). 그러나 당신은 또한 그것을 단지 속성으로 저장할 수 있습니다. – ekhumoro

+0

아, 네. 무슨 뜻인지 알 겠어. 지금 내게는 분명해. 감사! – pythonner