2016-07-29 131 views
0

Linux OSを使用して、VLCプレーヤーのフォルダからビデオファイルを再生するプログラムをPythonで作成する必要があります。これらのファイルはプレイリストに含まれている必要があります。コード:Python VLCのメディアリスト

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() 

問題は、最初の動画を実行した後にプレーヤーが終了することです。私はそれがリストに2番目のビデオを追加しないと思う。

  1. LibVLCのPythonのバインディングでビデオをプレイリストに追加するにはどうすればよいですか?
  2. フォルダ内のすべての動画を再生するユーティリティ機能はありますか? UPD:プレイリストを作成し、VLCプレーヤーでテストするために実行しました。最初のビデオのみを再生します。その後VLCも閉じます。問題は何ですか?
+0

UPD:プレイリストを作成し、VLCプレーヤーでテストするために実行しました。最初のビデオのみを再生します。その後VLCも閉じます。何が問題ですか? – player

答えて

1

ループに挿入して、各曲の再生が完了するまで待ちます。たとえば、このコードを試してください

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 
+0

ありがとうございます。問題はVLCまたはOSにありました。私はOSを再インストールし、vlcをインストールしました。出来た。 すべての動画を再生する必要があるフォルダを指定する方法は知っていますか? – player

0

while/forループを使用すると、メディアリストを1つずつ繰り返します。この場合、ポインタが最初のビデオのみを指している可能性があります。

編集1:

[Forループの使用](Python VLC binding- playing a playlistは)この質問の答えのセクションを参照してください。 forループは、URLを繰り返し処理するために使用されます(この場合はメディアリストです)。

+0

"UPD:プレイリストを作成し、VLCプレーヤーでテストするために実行しました。最初のビデオだけを再生しました.VLCも終了しました。問題はおそらくVLCにあります。 – player

+0

http://stackoverflow.com/questions/34669571/how-to-import-vlc-plugins-in-to-python-script –

+0

この質問を確認してください。この例では、whileループを使用しています。 –

関連する問題