1

以下を使用して、複数のファイルを一緒にストリーミングできます。

$AGI->exec('Background',"file1&file2&file3&file4")

ただし、ファイルの再生中にユーザーが押したキーは返されません。そこで、$AGI->stream_file押されたキーを返すが、1つのファイルしか再生しないを使用しました。

複数のファイルを一緒に再生できる必要があります。ユーザーがキーを押した瞬間に再生が停止し、どのキーが押されたかを知る必要があります。

どうすればこれを達成できますか?

4

2 に答える 2

3

これはうまくいくはずです:

my $keyPress;
# fill in your filenames as appropriate...
foreach my $file (qw(file1 file2 file3))
{
    $keyPress = $AGI->stream_file($file);
    last if $keyPress;
}

# by this point, $keyPress will contain what key was pressed,
# 0 if all files played to completion, or -1 if a hangup occurred
# (as per the documentation).

コードを少し短くすることもできますが (たとえば、ループを do/while に引き締める)、この方法はかなり読みやすいです。

于 2009-08-24T17:03:25.410 に答える
0

Background コマンドは、ユーザーが内線番号を入力するのを待って、そこに自動的に送信します。存在しない場合は i 内線番号に送信します。

代わりに Read コマンドを使用してください。Read は、ユーザー キーを変数に格納します。

Read(SomeVar,file1,10); 最大 10 桁を SomeVar SayDigits(${SomeVar}) に読み込みます

アスタリスクは Read コマンドで file1&file2 をサポートするようになったと思いますが、どのバージョンからそのように動作するかはわかりません。

于 2009-08-26T21:29:13.620 に答える