7

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

$ mpg123 -C filename.mp3

曲の再生を開始し、キーボード入力を監視して制御します。「s」を押すと、曲「q」が一時停止して終了します。

Perlスクリプトを使用してmpg123プロセスを生成しています。そのスクリプトから、このプロセスに入力を送信したいと思います。私はプロセスのpidを持っています、私は制御目的のためにこのプロセスにキーストロークを送る必要があります。

4

1 に答える 1

6

mp3プレーヤーをperlからパイプとしてスポーンする必要があります。そのようです:

$| = 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:プレイヤーはこれを入力として受け取ります。これが機能する場合は、echoの代わりにperlスクリプトを使用して、疑似端末に書き込みます。

于 2010-10-10T19:47:55.293 に答える