質問

MP3プレーヤー(MPG123 Linux)のWebインターフェイスを開発しています。 MPG123はコマンドラインMP3プレーヤーであり、キーボード入力を使用して制御できます。例えば:

$ mpg123 -C filename.mp3

曲の再生を開始し、コントロール用のキーボード入力を監視します。 「S」を押すと、「Q」という曲が一時停止します。

PERLスクリプトを使用してMPG123プロセスを生み出しています。そのスクリプトから、このプロセスに入力を送信したいと思います。プロセスのPIDがあります。制御目的のためにこのプロセスにキーストロークを送信するだけです。

役に立ちましたか?

解決

PerlのパイプとしてMP3プレイヤーを生成する必要があります。そのようです:

$| = 1; # Set unbuffered output.
open( my $mp3player, "| mpg123" ) or die "cannot start mp3 player: $!";
print $mp3player "s";
...
print $mp3player "q";
close $mp3player

複数のスクリプトの呼び出しを2回目にしてください:インタラクティブなシェルに入力します tty. 。それはあなたに擬似末端の名前を与えます。次に、このシェルでプレーヤーを開始します。別のシェルで、その擬似末端に書き込みます。例えば echo "s" > /dev/pts/11. 。プレーヤーはこれを入力として受け取ります。これが機能する場合は、エコーの代わりにPerlスクリプトを使用して、擬似末端に書き込みます。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top