Как записать звук при воспроизведении музыки в фоновом режиме

#android #mediarecorder

#Android #mediarecorder

Вопрос:

В моем приложении я должен записывать звук с музыкой. Когда я нажимаю на кнопку записи, музыка запускается, и запись тоже начинается. Пользователь споет песню, и эта песня будет записана с музыкой.

В моем коде песня не записывается с музыкой. он записывает только звук пользователя. Пожалуйста, проверьте мой код и предложите мне.

 recorder = new MediaRecorder();
    record_btn.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View v) {
            try {
                mPlayer = MediaPlayer.create(RecordVoiceActivity.this, R.raw.intro);
                mPlayer.start();

                long dtMili = System.currentTimeMillis();
                primarySongName="" dtMili;
                // Date dt = new Date(dtMili);
                Toast.makeText(RecordVoiceActivity.this,
                        "Recording starting", Toast.LENGTH_LONG).show();
                recorder.setAudioSource(MediaRecorder.AudioSource.MIC);
                recorder.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP);
                recorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB);
                currentDateTimeString = DateFormat.getDateInstance()
                        .format(new Date());
                Log.d("##################################", ""   dtMili);
                recorder.setOutputFile("/sdcard/Recordedsong_"   dtMili   ".3gp");
                recorder.prepare();
                recorder.start();
            } catch (IllegalStateException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            } catch (IOException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
        }
    });
    stop_btn.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View v) {
            try {
                // TODO Auto-generated method stub
                Toast.makeText(RecordVoiceActivity.this,
                        "Recording stopped", Toast.LENGTH_LONG).show();
                mPlayer.stop();
                recorder.stop();
                recorder.release();
            } catch (IllegalStateException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
        }
    });

    replay_btn.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View v) {
            try {
                // TODO Auto-generated method stub
                Log.d("############################", currentDateTimeString);
                Uri path = Uri.parse(Environment.getExternalStorageDirectory()
                          "/"   "Recordedsong_"   primarySongName
                          ".3gp");
                MediaPlayer player = MediaPlayer.create(
                        RecordVoiceActivity.this, path);
                player.setLooping(false);
                player.start();
            } catch (IllegalStateException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }

        }
    });
  

В этом коде я записываю песню и сохраняю ее на своей SD-карте. Затем воспроизведение с SD-карты.
Но песня записывается без музыки, которую я играю.

Комментарии:

1. Привет, Гаурав, твоя проблема решена или нет?

2. моя проблема такая же, поэтому, пожалуйста, дайте мне решение для нее.

3. ГауравГупта: Как вы решили проблему??

4. @Gaurav Gupta: Не могли бы вы предложить нам решить эту проблему..