Медиаплеер 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 ()), он работает, но когда я запускаю приведенный выше код, музыка не воспроизводится!

В чем проблема?


person pythonner    schedule 12.09.2017    source источник
comment
У меня отлично работает. Возможно, вам стоит опубликовать полный, работоспособный пример, демонстрирующий проблему.   -  person ekhumoro    schedule 12.09.2017
comment
Я только что разобрался в проблеме. Я отправил на это ответ.   -  person pythonner    schedule 12.09.2017


Ответы (2)


Ответ после поиска на форумах qt заключается в том, что я не предоставил объект player при создании списка воспроизведения.

        playlist = QMediaPlaylist(player)
person pythonner    schedule 12.09.2017
comment
На самом деле причина не в этом. В вашем приложении вам необходимо сохранить ссылку на список воспроизведения, потому что игрок не получает права собственности на него. Если вы позволите ему выйти за пределы области видимости, python соберет его мусором. Один из способов исправить это - дать плейлисту родительский элемент (подойдет любой QObject - он не обязательно должен быть проигрывателем). Но вы также можете просто сохранить его как атрибут. - person ekhumoro; 12.09.2017
comment
Ах, хорошо, я понимаю, что ты имеешь в виду. Теперь мне стало понятнее. Благодарность! - person pythonner; 13.09.2017

'' 'как работать с ним, как с плейлистом, добавлять песни в плейлист столько, сколько мы хотим, и при нажатии автоматически воспроизводить прямо из плейлиста' '' def open_dialog_box_for_playlist (self): filename = QFileDialog.getOpenFileName () path = str (filename [0 ]) playlist = QMediaPlaylist (self.media_player) url = QUrl.fromLocalFile (путь) playlist.addMedia (QMediaContent (url)) song__playlist = str (playlist) print ("songlist is", тип (song__playlist)) self.media_player.setPlaylist (плейлист) self.media_player.playlist (). setCurrentIndex (0) self.media_player.play () print ("это плейлист ::::", плейлист)

    model = QtGui.QStandardItemModel()
    self.listView.setModel(model)
    for i in song__playlist:
        item = QtGui.QStandardItem(i)
        model.appendRow(item)
person darshan    schedule 16.03.2020
comment
Попробуйте добавить больше описательных комментариев и используйте синтаксис уценки. - person adrisons; 16.03.2020
comment
пожалуйста, будьте более конкретны в своем вопросе. - person ionpoint; 16.03.2020