The apps are crashing after the button starts.



  • The annex crashes with the START button, with its task.

    Here's the code:

    public class MainActivity extends AppCompatActivity {
    
    AudioManager am;
    AudioTrack track;
    AudioRecord record;
    Button start;
    Button stop;
    CheckBox checkBox;
    MediaRecorder mediaRecorder;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        setVolumeControlStream(AudioManager.MODE_IN_COMMUNICATION);
    
        mediaRecorder = new MediaRecorder();
    
        stop=(Button)findViewById(R.id.b_stop);
        start = (Button)findViewById(R.id.b_start);
        checkBox = (CheckBox)findViewById(R.id.checkBox);
        start.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                record();
                playSound();
            }
        });
        stop.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                record.stop();
                track.stop();
            }
        });
    
    }
    
    private void playSound() {
        short[] myAudio = new short[1024];
        int t = 0;
        am = (AudioManager)this.getSystemService(Context.AUDIO_SERVICE);
        am.setMode(AudioManager.ROUTE_HEADSET);
        registerReceiver(new BroadcastReceiver() {
            @Override
            public void onReceive(Context context, Intent intent) {
             int state=intent.getIntExtra(AudioManager.EXTRA_SCO_AUDIO_STATE, -1);
    
                if (AudioManager.SCO_AUDIO_STATE_CONNECTED ==state){
                    record();
                }
                unregisterReceiver(this);
            }
        });
        am.startBluetoothSco();
        record.startRecording();
        track.play();
        while (true){
            t=record.read(myAudio,0,1024);
            track.write(myAudio,0,t);
        }
    }
    
    private void registerReceiver(BroadcastReceiver broadcastReceiver) {
    }
    
    private void record() {
         record = new AudioRecord(MediaRecorder.AudioSource.MIC,8000,
                AudioFormat.CHANNEL_IN_MONO, AudioFormat.ENCODING_PCM_16BIT,1024);
    
         track = new AudioTrack(AudioManager.STREAM_MUSIC, 8000, AudioFormat.CHANNEL_OUT_MONO,
                AudioFormat.ENCODING_PCM_16BIT, 1024, AudioTrack.MODE_STREAM);
    }
    

    }

    Here's the log:

    06-22 16:32:06.377 17807-17807/com.wexample.aaa.mysound W/art: Before Android 4.1, method android.graphics.PorterDuffColorFilter android.support.graphics.drawable.VectorDrawableCompat.updateTintFilter(android.graphics.PorterDuffColorFilter, android.content.res.ColorStateList, android.graphics.PorterDuff$Mode) would have incorrectly overridden the package-private method in android.graphics.drawable.Drawable
    06-22 16:32:06.477 17807-17807/com.wexample.aaa.mysound D/PhoneWindow: FMB installDecor mIsFloating : false
    06-22 16:32:06.477 17807-17807/com.wexample.aaa.mysound D/PhoneWindow: FMB installDecor flags : -2139029248
    06-22 16:32:06.587 17807-17845/com.wexample.aaa.mysound D/OpenGLRenderer: Render dirty regions requested: true
    06-22 16:32:06.607 17807-17807/com.wexample.aaa.mysound D/PhoneWindow: FMB isFloatingMenuEnabled mFloatingMenuBtn : null
    06-22 16:32:06.607 17807-17807/com.wexample.aaa.mysound D/PhoneWindow: FMB isFloatingMenuEnabled return false
    06-22 16:32:06.657 17807-17807/com.wexample.aaa.mysound D/SRIB_DCS: log_dcs ThreadedRenderer::initialize entered!
    06-22 16:32:06.667 17807-17845/com.wexample.aaa.mysound I/Adreno-EGL: <qeglDrvAPI_eglInitialize:379>: EGL 1.4 QUALCOMM build: SKARAJGA_AU_LINUX_ANDROID_LA.BR.1.1.2_RB1.05.00.02.031.018+PATCH[ES]_msm8916_32_refs/tags/AU_LINUX_ANDROID_LA.BR.1.1.2_RB1.05.00.02.031.018__release_ENGG (I856e09677e)
    OpenGL ES Shader Compiler Version: E031.25.03.02
    Build Date: 04/06/15 Mon
    Local Branch:
    Remote Branch: refs/tags/AU_LINUX_ANDROID_LA.BR.1.1.2_RB1.05.00.02.031.018
    Local Patches: 112c106f3772623daa7b4181c6cf23491044ead1 Revert "Disable ASTC on A405"
    58a118cb818fdc906095a49a90977c15f9d3b223 Remove ASTC
    06-22 16:32:06.667 17807-17845/com.wexample.aaa.mysound I/OpenGLRenderer: Initialized EGL, version 1.4
    06-22 16:32:06.677 17807-17845/com.wexample.aaa.mysound D/OpenGLRenderer: Get maximum texture size. GL_MAX_TEXTURE_SIZE is 4096
    06-22 16:32:06.677 17807-17845/com.wexample.aaa.mysound D/OpenGLRenderer: Enabling debug mode 0
    06-22 16:32:06.837 17807-17807/com.wexample.aaa.mysound I/Timeline: Timeline: Activity_idle id: android.os.BinderProxy@2c7aaccc time:32810473
    06-22 16:32:07.697 17807-17807/com.wexample.aaa.mysound D/ViewRootImpl: ViewPostImeInputStage ACTION_DOWN



  • That's how you solved the problem.

     start.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                (new Thread(){
                    @Override
                    public void run() {
                        record();
                        playSound();
                    }
                }).start();
    
        }
    });
    

    Thank you.




Suggested Topics

  • 2
  • 2
  • 2
  • 2
  • 2
  • 2
  • 2
  • 2
  • 2
  • 2
  • 2
  • 2
  • 2
  • 2
  • 2