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

Posted

技术标签:

【中文标题】Android录制我们自己的应用程序的声音【英文标题】:Android record sound of our own app 【发布时间】:2014-04-29 12:08:44 【问题描述】:

我想录制在我的应用程序中播放的音乐。就像我正在使用声音池播放不同的声音一样。现在我希望只录制声音池音频并保存在 .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();

现在正在录制音频,但问题是质量有点差,而且还有噪音。 现在我被卡住了,请帮助我。

【问题讨论】:

【参考方案1】:

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

【讨论】:

【参考方案2】:
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.

【讨论】:

兄弟这是一个非常古老的问题,当时我也尝试过这种方法,但是它们在保存的周围环境中是噪音,但我只想保存我的应用程序当前正在播放的那些声音。其实我想录鼓演奏。

以上是关于Android录制我们自己的应用程序的声音的主要内容,如果未能解决你的问题,请参考以下文章

Android:监听器在任何声音发生时录制声音

Android 录制应用程序声音输出

在android中将录制的声音调制成不同的效果?

Android - 如何录制简单的声音片段?

如何在 Android 中以更好的质量录制声音并降低噪音

在 Android 上录制和播放声音而不存储临时文件