audiorecorderのcallback関数
3 views (last 30 days)
Show older comments
recordの例に習って下のように10秒録音するプログラムを書いたのですが、明らかに10秒立たずにStopFcnが始動しました。StopFcnとはrecordが終わって呼び出される関数と言う認識は違うのでしょうか?
function Record0()
Fs = 44100;
T = 10;
sound = audiorecorder(Fs, 8, 1, 0);
sound.StartFcn = 'disp("Start recording.")';
sound.StopFcn = 'disp("Stop recording.")';
record(sound, T);
end
0 Comments
Answers (1)
Shoumei
on 2 Dec 2019
10秒ってどうやって測りました?
正確性を期するため、tic, tocという関数を使ってstart/stop間の時間を計測してみました。
s1 = audiorecorder(Fs, 8, 1, 0);
s1.StartFcn = 'tic,disp("Start recording.")';
s1.StopFcn = 'disp("Stop recording.");toc';
record(s1, T);
経過時間は 10.580585 秒です。
経過時間は 10.463242 秒です。
と、2回の実行は概ね10秒程度で終わっています。(表示などのオーバーヘッドがあるので10秒ちょっとかかります。)
また、s1.TotalSamplesを確認してみましたが、10秒間のサンプル数である441000サンプルのデータが取得できていました。
余談ですが、soundという関数があって競合するので、これを変数にするのは適切ではありません。s1に変更しました。
0 Comments
See Also
Categories
Find more on オーディオとビデオ in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!