我正在开发一个Android应用程序,这个应用程序的一部分是一个简单的木琴,我必须做的是一个功能的实现,当用户按下按钮时记录木琴声。
当用户按下按钮时,如do,re mi等,使用保存在原始文件夹中的mp3播放声音...
1)这可能吗? 2)有人可以解释我如何“捕获”声音并将其记录在SD卡中吗? 3)是否可以实现“记录”“播放”“停止”“重现”功能?
答案 0 :(得分:3)
您可以使用以下代码录制音频:
private void startRecording() {
mRecorder = new MediaRecorder();
mRecorder.setAudioSource(MediaRecorder.AudioSource.CAMCORDER);
mRecorder.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP);
mRecorder.setOutputFile(mFileName);
mRecorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB);
try {
mRecorder.prepare();
} catch (IOException e) {
Log.e(LOG_TAG, "prepare() failed");
}
mRecorder.start();
}
我正在搜索如何使用耳机录制音频,而不是来自 发言者请在评论中分享链接如果有人对此有所了解。
答案 1 :(得分:1)
是的,您可以在sd中捕获和存储音频,然后再播放它。看看这些链接。
http://developer.android.com/reference/android/media/MediaRecorder.html
http://www.tutorialspoint.com/android/android_audio_capture.htm
答案 2 :(得分:1)
如果没有root,Android就无法在内部(或者说“数字化”)记录扬声器或耳机的内容。原因可能是版权问题,因此无法生成通过Android设备播放内容的数字副本。
当然,如果信号足够大,您可以使用内置麦克风录制,但质量损失很大。此外,您还会在木琴上发出背景噪音和用户指尖的敲击声。
最佳解决方案是以编程方式混合与键对应的样本,并将结果发送到扬声器,同时发送到声音文件中。复杂但最佳。
答案 3 :(得分:0)
MediaRecorder recorder = new MediaRecorder();
recorder.setAudioSource(MediaRecorder.AudioSource.MIC);
recorder.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP);
recorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB);
recorder.setOutputFile(PATH_NAME);
recorder.prepare();
recorder.start(); // Recording is now started
...
recorder.stop();
recorder.reset(); // You can reuse the object by going back to setAudioSource() step
recorder.release(); // Now the object cannot be reused