Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/319.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 使用线程并行生成声音和录制音频_Java_Android_Multithreading_Audio - Fatal编程技术网

Java 使用线程并行生成声音和录制音频

Java 使用线程并行生成声音和录制音频,java,android,multithreading,audio,Java,Android,Multithreading,Audio,因此,基本上,我正在制作一个应用程序,在每10秒点击一个按钮后产生一个声音,持续1秒,同时记录所有其他声音 我希望录音发生在10秒的停顿中。我尝试使用线程和线程中断来实现这一点。但我真的不知道如何在这种情况下正确使用它们 这是我的密码: protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_

因此,基本上,我正在制作一个应用程序,在每10秒点击一个按钮后产生一个声音,持续1秒,同时记录所有其他声音

我希望录音发生在10秒的停顿中。我尝试使用线程和线程中断来实现这一点。但我真的不知道如何在这种情况下正确使用它们

这是我的密码:

 protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    playButton = (Button)findViewById(R.id.button);
    textView = (TextView) findViewById(R.id.textView);

    playButton.setOnClickListener(new View.OnClickListener() {

        public void onClick(View v) {
           // Sound Gen Thread
            Runnable myRunnable = new Runnable() {
                @Override
                public void run() {
                    new Timer().scheduleAtFixedRate(new TimerTask() {
                       public void run() {
                            AudioTrack tone = generateTone(freq, 1000);
                            tone.play();
                        }
                    }, 0, 10000);
                }
            };
            new Thread(myRunnable).start();

            //Recording Thread

            Runnable myRunnable1 = new Runnable() {
                @Override
                public void run() {
                    doInBackground();
                }
            };
            new Thread(myRunnable1).start();
        }
    });
}

你想无限次地这样做,或者只是几次。我想无限次地这样做。它应该一直持续,直到手动关闭应用程序。请尝试类似的操作。只是想在Android上实际试用之前模拟一下环境。如果您在理解代码时遇到任何问题,请告诉我。