我想录制在我的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();
现在音频正在录制,但问题是质量有点差,它们也是噪音。 现在我被困住了,请帮助我。
答案 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.