みんなに優しく、解りやすくをモットーに開設しています。 以下のルールを守りみんなで助け合いましょう。
1.ファイルメーカーで解らない事があればここで質問して下さい。 何方でも、ご質問・ご回答お願いします。 (優しく回答しましょう)
You are not logged in.
Pages: 1
はじめまして。
Windows7 Filemaker11 advancedを使っています。
指定時刻に音声ファイルを開くプログラムを作ろうと思っています。
指定時刻のリストはExcelで作成し、Filemakerにインポートするようにしました。
現在時刻をスクリプトで1秒おきに読み込み、読み込んだ現在時刻と指定時刻が同じ場合音声ファイルが再生されるように設定しました
(GetAsNumber(現在時刻)=GetAsNumber(指定した時刻)のとき、音声ファイルを再生するというスクリプトを組みました)。
その後次のレコードに移動し、指定時刻になったら再生するというふうに設定しました。
しかし、指定した時刻になっても音声ファイルが再生されない場合があります。
調べてみると画面に表示させた現在時刻が1秒とばしで表示されている場合があり、その現象と指定した時刻が重なった場合に
音声ファイルが再生されていないことがわかりました。
何か解決策がありますでしょうか。
よろしくお願い致します。
再生に1秒以上かかることはないんですか?再生中に次の指定時刻が来た場合どうします?
再生したらフラグを立てて、
現在時刻>指定した時刻
で再生するとか、1秒おきでなく
現在時刻<指定した時刻
のものを
指定した時刻-現在時刻
秒後に再生する。
1秒毎というのを、ontimerでやってるんじゃないみたいですね。
Offline
再生に1秒以上かかることはないんですか?再生中に次の指定時刻が来た場合どうします?
再生したらフラグを立てて、
現在時刻>指定した時刻
で再生するとか、1秒おきでなく
現在時刻<指定した時刻
のものを
指定した時刻-現在時刻
秒後に再生する。1秒毎というのを、ontimerでやってるんじゃないみたいですね。
開始時のスクリプト-----
On Timerスクリプトをインストール[「A」;間隔:1] (Aはスクリプト名)
スクリプト「A」-----
スクリプト一時停止/続行[間隔(秒): Time ( 0;0;0 )]
現在の時刻を挿入[選択; (現在時刻フィールド)]
IF[GetAsNumber (現在時刻フィールド)=GetAsNumber (指定時刻フィールド)]
スクリプト実行[「音声ファイルを再生するスクリプト」]
レコード/検索条件/ページヘ移動[次の;最後まできたら終了]
End IF
-----
上記のスクリプトです。
指定時刻の間隔は最短で1分で、音声ファイルは長くて5秒ほどです。
教えていただいように、他の方法をためしてみます。
ひとまずの回避策として、現在時刻=指定時刻 または 現在時刻=指定時刻+1sec の時に音声ファイルを再生するように指定したら鳴るようになりました。
現在時刻 ≧ 指定時刻
にされるのが良いかと思いますが。
または、
スクリプト「A」-----
スクリプト実行[「音声ファイルを再生するスクリプト」]
On Timerスクリプトをインストール[「A」;間隔: 0] (Aはスクリプト名)
-----
としておき、
開始スクリプトに、
On Timerスクリプトをインストール[「A」;間隔: ( 指定時刻 - Get ( 時刻 ) )] (Aはスクリプト名)
としておくのが最善だと思います。
Offline
スクリプト「A」-----
スクリプト実行[「音声ファイルを再生するスクリプト」]
On Timerスクリプトをインストール[「A」;間隔: 0] (Aはスクリプト名)-----
としておき、
開始スクリプトに、
On Timerスクリプトをインストール[「A」;間隔: ( 指定時刻 - Get ( 時刻 ) )] (Aはスクリプト名)としておくのが最善だと思います。
この方法で動きました。
ありがとうございます!
Pages: 1
[ Generated in 0.005 seconds, 9 queries executed - Memory usage: 520.13 KiB (Peak: 524.67 KiB) ]