Список мультимедиа в Python VLC

Мне нужно написать программу на Python, которая будет воспроизводить видеофайлы из папки в проигрывателе VLC, используя ОС Linux. Эти файлы должны быть в списке воспроизведения. Код:

import vlc

mrl1 = '....1.3gp'
mrl2 = '....2.3gp'

Instance = vlc.Instance('--input-repeat=-1', '--fullscreen', '--mouse-hide-timeout=0')

MediaList = Instance.media_list_new()
MediaList.add_media(Instance.media_new(mrl2))
MediaList.add_media(Instance.media_new(mrl1))

list_player = Instance.media_list_player_new()
list_player.set_media_list(MediaList)

list_player.next()

player.play()

Проблема в том, что после запуска первого видео плеер закрывается. Я думаю, что это не добавляет второе видео в список.

  1. Как добавить видео в плейлист в привязке Python для LibVLC?
  2. Есть ли служебная функция, которая воспроизводит все видео в папке? UPD: Я создал плейлист и запустил его для проверки в плеере VLC. Воспроизведение только первого видео. После VLC тоже закрывается. В чем проблема?

person player    schedule 29.07.2016    source источник
comment
UPD: Я создал плейлист и запустил его для проверки в плеере VLC. Воспроизведение только первого видео. После VLC тоже закрывается. В чем проблема?   -  person player    schedule 29.07.2016


Ответы (2)


Вы должны поместить его в цикл, который ждет окончания воспроизведения каждой песни. Например, попробуйте этот код

import vlc
import time

mrl1 = '....1.3gp'
mrl2 = '....2.3gp'

song_list = [mrl1,mrl2]
instance = vlc.Instance('--input-repeat=-1', '--fullscreen', '--mouse-hide-timeout=0')
for song in song_list:
    player = instance.media_player_new()
    media = instance.media_new(song)
    
    media.get_mrl()
    player.set_media(media)
    player.play()
    playing = set([1,2,3,4])
    time.sleep(1)
    duration = player.get_length() / 1000
    mm, ss = divmod(duration, 60)

    while True:
        state = player.get_state()
        if state not in playing:
            break
        continue
person GAVD    schedule 29.07.2016
comment
Спасибо. Проблема была в VLC или ОС. Я переустановил ОС и установил vlc. Это сработало. Вы знаете, как указать папку, в которой вам нужно воспроизвести все видео? - person player; 29.07.2016

Используйте цикл while/for, который будет перебирать список мультимедиа один за другим. Возможно, в этом случае указатель указывает только на первое видео.

Редактировать 1:

[Использование цикла For] (привязка Python VLC - воспроизведение списка воспроизведения) См. раздел ответа на этот вопрос. Цикл for используется для перебора URL-адресов (в данном случае это список медиа).

person Sayali Sonawane    schedule 29.07.2016
comment
UPD: Я создал плейлист и запустил его для проверки в плеере VLC. Воспроизведение только первого видео. После VLC тоже закрывается. Проблема скорее всего в VLC. - person player; 29.07.2016
comment
stackoverflow .com/questions/34669571/ - person Sayali Sonawane; 29.07.2016
comment
проверьте этот вопрос. В этом примере автор использует цикл while. - person Sayali Sonawane; 29.07.2016