0

数秒後にオーディオレコード機能を停止しようとしています。録音は機能しますが、一定の時間が経過しても停止しません。

これらの項目を onClick と、呼び出される関数の try 部分に配置しようとしましたが、同じ結果が得られるたびに、アプリは実行を続けます。

stackoverflow や他のサイトを見回して、スレッド、ハンドラー postDelayed、タイマーについてさまざまなアイデアを試しましたが、うまくいきません。

以下のコードから audiorecord を削除して、デュレーション設定だけに集中しました。コードは、私が試した最後の項目にあります。

助けていただければ幸いです。

public void onClick(View v) {
    recordStarted=true;
    recordAudio();
    final Runnable stopRecording = new Runnable() {
        public void run() {
            recordStarted=false;
        }
    };
    handler.postDelayed(stopRecording, 3000);

    //Start the delay of stopping the recordin

}

public void recordAudio () {
    try {

        while(recordStarted) {
            counter++;
    } catch (Throwable t) {
        Log.e("AudioRecord", "Recording Failed");
        t.printStackTrace();
    }
    String counterS = String.valueOf(counter);
    Toast.makeText(Main.this, "counter = " + counterS, Toast.LENGTH_SHORT).show();
}
4

1 に答える 1