Android记录我们自己的应用程序的声音

时间:2014-04-29 12:08:44

标签: java android audio audio-recording audiorecord

我想录制在我的app中播放的音乐。我正在播放与声音池不同的声音。现在我想只有soundpool音频是录音并保存在.wav或mp3文件中。我使用录音来录制声音。

       AudioRecord audioRecord = new AudioRecord(AudioManager.STREAM_MUSIC,
         44100,
         AudioFormat.CHANNEL_IN_MONO,
         AudioFormat.ENCODING_PCM_16BIT,
         minBufferSize);
   int minBufferSize = AudioRecord.getMinBufferSize(44100, 
         AudioFormat.CHANNEL_IN_MONO, 
         AudioFormat.ENCODING_PCM_16BIT);

       short[] audioData = new short[minBufferSize];
  audioRecord.startRecording();

现在音频正在录制,但问题是质量有点差,它们也是噪音。 现在我被困住了,请帮助我。

2 个答案:

答案 0 :(得分:1)

虽然我没有找到我的问题的答案,但现在我正在使用技术记录我想与大家分享的方面。当您尝试在运行时保存应用程序创建的音乐时,我尝试使用的上述功能是完全错误的选项。现在,对于我的第一个版本,我只是将钢琴按钮的点击次数与系统时间保存在一个数组中。现在,当我点击它时,它将播放与用户尝试录制相同的声音。我将这些笔记保存在数据库中以供用户进一步重用。尽管这不是解决方案,因为这些笔记只能在我们的应用程序中播放,但这是我们可以在我们的应用程序中添加的一个很好的功能。当我解决确切的解决方案时,我会与你们分享

答案 1 :(得分:0)

button.setOnTouchListener(new View.OnTouchListener() {
            @Override
            public boolean onTouch(View v, MotionEvent event) {
                if(event.getAction()==MotionEvent.ACTION_DOWN){
                    textView.setText("Recording started");
                  startRecording();
                }
                else if(event.getAction()==MotionEvent.ACTION_UP){
                    textView.setText("Recording stopped");
                  stopRecording();
                }
                return false;
            }
        }); 
private void startRecording() {
        mRecorder = new MediaRecorder();
        mRecorder.setAudioSource(MediaRecorder.AudioSource.MIC);
        mRecorder.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP);
        mRecorder.setOutputFile(mFileName);
        mRecorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB);

        try {
            mRecorder.prepare();
        } catch (Exception e) {

        }

        mRecorder.start();
    }

    private void stopRecording() {
        mRecorder.stop();
        mRecorder.release();
        mRecorder = null;
        uploadaudio();
    }



You can add this code to record your sound in your application.