0

タイトルが示すように、ループを破る方法がわからないため、サウンド ループに問題があります。ループが実行されているとき、デバイスの音量を制御できません。

public void onClick(View view) {
            // TODO Auto-generated method stub
                boolean on = ((ToggleButton) view).isChecked();
                if (on){
                     boolean is = true;
                     android.os.Process.setThreadPriority(android.os.Process.THREAD_PRIORITY_URGENT_AUDIO);
                     int buffersize = AudioRecord.getMinBufferSize(20000, AudioFormat.CHANNEL_IN_MONO, AudioFormat.ENCODING_PCM_16BIT);
                     AudioRecord arec = new AudioRecord(MediaRecorder.AudioSource.MIC, 20000, AudioFormat.CHANNEL_IN_MONO, AudioFormat.ENCODING_PCM_16BIT, buffersize);
                     AudioTrack atrack = new AudioTrack(AudioManager.STREAM_MUSIC, 20000, AudioFormat.CHANNEL_OUT_MONO, AudioFormat.ENCODING_PCM_16BIT, buffersize, AudioTrack.MODE_STREAM);
                     atrack.setPlaybackRate(20000);
                     byte[] buffer = new byte[buffersize];
                     arec.startRecording();
                     atrack.play();
                     while(is){
                         arec.read(buffer, 0, buffersize);
                         atrack.write(buffer, 0, buffer.length);
                     }
                     arec.stop();
                        atrack.stop();
                        is = false;
                           }
                           }});

        }
4

3 に答える 3

0

使用しarec.release()ます。atrack.release()代わりに、arec.stop();これatrack.stop はあなたを助けるかもしれません、頑張ってください... :)

于 2013-11-04T11:28:41.700 に答える