我正在尝试创建一个应该连续记录的摄像头服务。
我现在可以实现这个目标。我保存1小时的视频文件,然后创建另一个。
public void run() {
if(!SDCard.getInstance(mContext).isAvailable()){
Log.e(TAG,"SD CARD IS NOT AVAILABLE");
return;
}
createSurfaceCallback();
while (true){
if(surfaceExist){
try{
boolean prepared = start();
if(prepared) {
mMediaRecorder.start();
recording = true;
Thread.sleep(1000 * 60*60);
failureCount = 0;
}else {
Thread.sleep(50);
recording = false;
failureCount ++;
}
destroy();
}catch (Exception ex){
ex.printStackTrace();
failureCount++;
recording = false;
}
}else{
try{
Thread.sleep(200);//waits surface the created
}catch (Exception ex){
}
}
}
}
到目前为止,我的代码在3天内运行完美但我的问题是视频之间存在时差。例如,
为什么我得出这个结论?这个时差发生了什么?
这些选项我可能是这个问题的原因,但我不确定。我可以减少时差吗?
private void destroy(){
try {
recording = false;
mMediaRecorder.reset();
} catch (RuntimeException e) {
e.printStackTrace();
}
}