audiorecorderのcallback関数
3 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
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 Kommentare
Antworten (1)
Shoumei
am 2 Dez. 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 Kommentare
Siehe auch
Kategorien
Mehr zu オーディオとビデオ finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!