Приложение не открывается.
Я на самом деле новичок в Android Dev, а также я мало работал с потоками. Я действительно не знаю, как start (), release () и stop () работает, и я не мог найти информацию об использовании буферов вместо каталогов. Можно ли вообще передать голос из микробуфера на динамики?
public class MainActivity extends AppCompatActivity {
private MediaRecorder micro = null;
private MediaPlayer speakers = null;
private ByteBuffer audioBuffer;
private String bufferString = getExternalCacheDir().getAbsolutePath();
File buffer = new File(bufferString);
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.RECORD_AUDIO}, 1);
micro = new MediaRecorder();
speakers = new MediaPlayer();
startRecording();
}
private void startRecording(){
micro.setAudioSource(MediaRecorder.AudioSource.MIC);
micro.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP);
micro.setOutputFile(buffer);
micro.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB);
speakers.setAudioStreamType(AudioManager.STREAM_MUSIC);
try {
micro.prepare();
speakers.setDataSource(bufferString);
speakers.prepare();
}catch(IOException e){e.printStackTrace();}
new Runnable() {
@Override
public void run() {
while(true){
micro.start();
speakers.stop();
micro.release();
speakers.start();
}
}
};
}
}
Я пытался создать приложение, которое напрямую и в режиме реального времени передает голос с микро на динамики.