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录制我们自己的应用程序的声音的主要内容,如果未能解决你的问题,请参考以下文章