私はPythonでシンプルなフロントエンドを作成して、mplayer(サブプロセス内)を使用してインターネットラジオチャンネル(shoutcastなど)を再生および録音しています。ユーザーがステーションをクリックすると、次のコードが実行されます。
url = http://77.111.88.131:8010 # only an example
cmd = "mplayer %s" % url
p = subprocess.Popen(cmd.split(), shell=False)
wait = os.waitpid(p.pid, 1)
return int(p.pid)
これは完全に機能し、ストリームは正常に再生を開始します。どういうわけかストリームのタイトルを解析したいのですが。mplayerの出力からタイトルを取得する必要があるようです。これは、ターミナルでストリームを再生したときの出力です。
$ mplayer http://77.111.88.131:8010 MPlayer 1.0rc4-4.4.5(C)2000-2010MPlayerチーム mplayer:ソケットに接続できませんでした mplayer:そのようなファイルやディレクトリはありません LIRCサポートを開くことができませんでした。リモコンは使用できなくなります。 http://77.111.88.131:8010を再生します。 AF_INET6の77.111.88.131を解決しています... AF_INET6の名前を解決できませんでした:77.111.88.131 サーバーへの接続77.111.88.131[77.111.88.131]:8010 .. .. 名前:Justmusic.Fm ジャンル:ハウス ウェブサイト:http://www.justmusic.fm 公開:はい ビットレート:192kbit / s キャッシュサイズを320Kバイトに設定 キャッシュフィル:0.00%(0バイト) ICY情報:StreamTitle ='(JustMusic.FM)地下室-片頭痛のZajacはJustmusic2010-10-09に住んでいます';StreamUrl ='http://www.justmusic.fm'; キャッシュフィル:17.50%(57344バイト) 音声のみのファイル形式が検出されました。
その後、停止するまで実行されます。だから問題は、どうすれば「(JustMusic.FM)地下室-Zajac、MigrenはJustmusic 2010-10-09に住んでいる」を取得し、それでもプロセスを実行させることができるかということです。subprocess()が実際に出力を保存しているとは思いませんが、間違っている可能性があります。どんな助けでも深く感謝します:)