我正在尝试在服务中使用MediaRecorder来录制声音.但是它在开始时会产生1秒的延迟(静音).我该如何摆脱呢?我尝试使用RehearsalAudioRecorder仍然没有运气.如果有人已解决此问题,请先提出建议.
开始
Intent serviceIntent = new Intent();
serviceIntent.setAction("com.soundrecoder.RecorderService");
serviceIntent.putExtra("audioFile", path);
serviceIntent.putExtra("state", true);
startService(serviceIntent);
停止
Intent serviceIntent = new Intent();
serviceIntent.setAction("com.soundrecoder.RecorderService");
serviceIntent.putExtra("state", false);
startService(serviceIntent);
RecorderService.java文件
public class RecorderService extends Service
{
private static final String TAG = null;
private static MediaRecorder mRecorder;
public void onCreate() {};
public void onStart(Intent intent, int startId)
{
boolean isStart = intent.getBooleanExtra("state", false);
if (isStart) {
mRecorder = new MediaRecorder();
mRecorder.setAudioSource(MediaRecorder.AudioSource.MIC);
mRecorder.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP);
mRecorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB);
mRecorder.setOutputFile(intent.getStringExtra("audioFile"));
try {
mRecorder.prepare();
} catch (IllegalStateException e) {
Log.e(TAG,e.getMessage());
} catch (IOException e) {
Log.e(TAG,e.getMessage());
}
try {
mRecorder.start();
}
catch (IllegalStateException e) {
Log.e(TAG, e.getMessage());
}
}
else if (!isStart) {
mRecorder.stop();
mRecorder.reset();
}
}
@Override
public IBinder onBind(Intent intent) {
return null;
}
}
本文探讨了在Android应用中使用MediaRecorder录制声音时遇到的1秒延迟问题,重点在于如何通过优化设置或尝试替代方案如RehearsalAudioRecorder来消除这一问题,适合寻求解决方案的开发者阅读。
6754

被折叠的 条评论
为什么被折叠?



