我现在线程里面录像哦,移除线程关闭录像之后,屏幕就卡在录像的最后一个画面里面,这是为什么啊
、
case R.id.avm_record_igview:
// 录制
if(isRecording){
avm_record_igview.setBackgroundResource(R.drawable.ivideo_stop_record_selector);
// 开启线程
handler.post(runnable);
isCycle = !isCycle;
} else {
avm_record_igview.setBackgroundResource(R.drawable.ivideo_start_record_selector);
if(true == isCycle){
avm_record_igview.setBackgroundResource(R.drawable.ivideo_start_record_selector);
stopRecording();
// stopPreview();
// 移掉线程
handler.removeCallbacks(runnable);
//循环取反
isCycle = !isCycle;
}
booleanRecording();
}
break;
}
/**
* 停止录像,并保存
*/
private void stopRecording()
{
if (mMediaRecorder == null)
{
return;
}
try {
mMediaRecorder.stop();
} catch (IllegalStateException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
releaseMediaRecorder();
isRecording = !isRecording;
}
// ============================= 释放记录器对象 =========================
private void releaseMediaRecorder() {
if (mMediaRecorder != null) {
try {
mMediaRecorder.reset(); // 记录器重置
mMediaRecorder.release(); // 记录器释放
mMediaRecorder = null; // 记录器为空
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
// ================= 开始线程进行循环录像 ==================
private Runnable runnable = new Runnable() {
@Override
public void run() {
// TODO Auto-generated method stub
try {
// 创建录像文件
fileName = System.currentTimeMillis() + ".mp4"; // 文件名 时间戳.mp4
absolutePath = Constants.RECORD_VIDEO_PATH + fileName; // 保存路径 + 文件
// 在线程中进行录像
while (isRecording)
startRecording(); // 开始录像
if(true == DEBUG)
Log.e(TAG,"startRecording time = "+ System.currentTimeMillis());
}catch (Exception e) {
Log.e(TAG,"Looper Recording = "+ e);
}
// 每次时间到之后重启一下线程
handler.postDelayed(runnable, delayMillis);
}
};