android延时1秒,android-MediaRecorder以1秒的延迟开始.我如何摆...

我正在尝试在服务中使用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;

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值