2016-08-19 10 views
0

にEOFを検出することができ、私はプレイ中に変更するプレイリストを持って、Mplayerのは、最初のトラックの最後にプレイリストをリロードしていないので、私は何をする必要があるかにはmplayerをリロードし、その後、EOFをキャプチャしています演奏を続けなさい。 mplayerとpopenを使用してEOFを検出するにはどうすればよいですか?それとも簡単な方法がありますか?私は、提案された「重複した」質問をチェックしました。これは、これがpopenを介してトラック/プレイリストの終わりをキャプチャしているので、私に答えを与えるとは思わない。のmplayer - どのように私は、Python

+0

明確にする:あなたは、この手順を実行すると、あなたのプレイリストにはmplayerを開始したいです。そして、 'playlist.txt'ファイルを変更(または追加)する何かが起こります。 mplayerがトラックの終わりに達したら、playlist.txtを再スキャンし、変更されている場合は、mplayerを停止して新しいプレイリストで再起動します。あれは正しいですか? –

+0

はい、私は新しいトラックを 'playlist.txtに追加する別の手順があります。私はmplayerが遊んでいるかどうかを調べる方法として 'playflag'を使うつもりだったので、私はそれを引き起こすことができましたが、私は道を見つけることができません。現在、 'play_music()'は、新しいトラックがプレイリストに追加され、実行されていない場合、サブプロセスを実行するときに呼び出されます。 HTH? – northwarks

答えて

0

私はこの問題を解決できませんでした.Mplayerのステータスを取得し、その状態でいくつかのコードを実行する方法が必要です。それが立てば、新しいトラックが追加されたら、mplayerにプレイリストを再ロードさせることができませんでした。そして、私が始めたときにそれを開始しました。

将来の読者のために、私は行きたい場所ではありませんでしたが、良いプレイリスト管理があり、client.consumeプロパティを使用すると、プレイリストから実際にトラックが削除されますジュークボックスのシナリオ。

+0

MDPの良い選択。私は単純に、mplayerの組み込みプレイリストと "自分自身を構築した"プレイリストを無視してしまいました:mplayerが次のトラックで再開されるトラックのキュー/リスト。大雑把に言うと、 'len(tracks)while:' track = tracks.pop();シェル(mplayerトラック);終わり ' – smassey

+0

ありがとう、私は他の問題があれば覚えておいてください。 – northwarks