设为首页 加入收藏

TOP

Android开发之打开闪光灯录制视频(六)
2015-07-16 12:57:40 来源: 作者: 【 】 浏览:46
Tags:Android 开发 打开 闪光灯 录制 视频
ng = String.valueOf(ff.format(System.currentTimeMillis()));? ? ? ? ? ? ? ? ? ?
? ? ? ? ? ? ? ? ? ? File videoFile = IOUtil.CreateNewFile(Environment.getExternalStorageDirectory().getPath()+"/phonedoctor/video",
? ? ? ? ? ? ? ? ? ? ? ? ? ? testuser + "-" + recordTimeString+".3gp",null);
? ? ? ? ? ? ? ? ? ? mediaRecorder.setOutputFile(videoFile.getAbsolutePath());
? ? ? ? ? ? ? ? ? ? mediaRecorder.setPreviewDisplay(surfaceView.getHolder().getSurface());
? ? ? ? ? ? ? ? ? ? mediaRecorder.prepare();
? ? ? ? ? ? ? ? ? ? mediaRecorder.start();? ? //? ? 开始录制
? ? ? ? ? ? ? ? ? ? // 开启计时线程
? ? ? ? ? ? ? ? ? ? myChronograph = new MyChronograph(mHandler,60000);
? ? ? ? ? ? ? ? ? ? myChronograph.start();
? ? ? ? ? ? ? ? ? ? Toast.makeText(RecordVideoActivity.this, "开始录制视频!", Toast.LENGTH_SHORT).show();
? ? ? ? ? ? ? ? ? ? record = true;
? ? ? ? ? ? ? ? ? ? ((Button)findViewById(R.id.rv_record)).setEnabled(false);
? ? ? ? ? ? ? ? ? ? break;


? ? ? ? ? ? ? ? case R.id.rv_stop:
? ? ? ? ? ? ? ? ? ? if(record){
? ? ? ? ? ? ? ? ? ? ? ? record = false;
? ? ? ? ? ? ? ? ? ? ? ? mediaRecorder.stop();
? ? ? ? ? ? ? ? ? ? ? ? mediaRecorder.reset();
? ? ? ? ? ? ? ? ? ? ? ? Log.i(TAG,"TAG-1");
? ? ? ? ? ? ? ? ? ? ? ? if(camera!=null){
? ? ? ? ? ? ? ? ? ? ? ? ? ? camera.lock();
? ? ? ? ? ? ? ? ? ? ? ? ? ? camera.stopPreview();
? ? ? ? ? ? ? ? ? ? ? ? ? ? Camera.Parameters myParameters = camera.getParameters();
? ? ? ? ? ? ? ? ? ? ? ? ? ? myParameters.setFlashMode(Camera.Parameters.FLASH_MODE_OFF);
? ? ? ? ? ? ? ? ? ? ? ? ? ? camera.setParameters(myParameters);
? ? ? ? ? ? ? ? ? ? ? ? ? ? camera.release();
? ? ? ? ? ? ? ? ? ? ? ? ? ? camera = null;
? ? ? ? ? ? ? ? ? ? ? ? }
? ? ? ? ? ? ? ? ? ? ? ? // 秒表线程控制? ? ? ?
? ? ? ? ? ? ? ? ? ? ? ? if(myChronograph!=null){
? ? ? ? ? ? ? ? ? ? ? ? ? ? myChronograph.exit();
? ? ? ? ? ? ? ? ? ? ? ? ? ? myChronograph = null;
? ? ? ? ? ? ? ? ? ? ? ? }
? ? ? ? ? ? ? ? ? ? ? ? ((Button)findViewById(R.id.rv_record)).setEnabled(true);
? ? ? ? ? ? ? ? ? ? }
? ? ? ? ? ? ? ? ? ? break;
? ? ? ? ? ? ? ? }
? ? ? ? ? ? } catch (Exception e) {
? ? ? ? ? ? ? ? Toast.makeText(RecordVideoActivity.this, "发生异常", 1).show();
? ? ? ? ? ? ? ? e.printStackTrace();
? ? ? ? ? ? }
? ? ? ? }
? ? ? ?
? ? }
? ?
? ? private Handler mHandler = new Handler(){


? ? ? ? @Override
? ? ? ? public void handleMessage(Message msg) {
? ? ? ? ? ? String[] strMsg;
? ? ? ? ? ? switch (msg.what) {
? ? ? ? ? ? case MsgNumber.UPTIME_UI:
? ? ? ? ? ? ? ? strMsg = (String[]) msg.obj;
? ? ? ? ? ? ? ? chronograph.setText(strMsg[0]);
? ? ? ? ? ? ? ? if(!recordOver){
? ? ? ? ? ? ? ? ? ? int percent = Integer.parseInt(strMsg[1]);
? ? ? ? ? ? ? ? ? ? if(percent==-1){
? ? ? ? ? ? ? ? ? ? ? ? recordOver = true;
? ? ? ? ? ? ? ? ? ? ? ? schedule.setProgress(60);
? ? ? ? ? ? ? ? ? ? ? ? Toast.makeText(RecordVideoActivity.this, "已录制一分钟!", Toast.LENGTH_SHORT).show();
? ? ? ? ? ? ? ? ? ? ? ? return;
? ? ? ? ? ? ? ? ? ? }
? ? ? ? ? ? ? ? ? ? percent = percent>60?60:percent;
? ? ? ? ? ? ? ? ? ? schedule.setProgress(percent);
? ? ? ? ? ? ? ? }
? ? ? ? ? ? ? ? break;


? ? ? ? ? ? default:
? ? ? ? ? ? ? ? break;
? ? ? ? ? ? }
? ? ? ? }
? ? ? ?
? ? };
? ?
? ? // 闪光灯判断
? ? public boolean isSurportFlashlight(Context context) {
? ? ? ? boolean flag = false;
? ? ? ? PackageManager pm = context.getPackageManager();
? ? ? ? FeatureInfo[] features = pm.getSystemAvailableFeatures();
? ? ? ? for (FeatureInfo f : features) {
? ? ? ? ? ? if (PackageManager.FEATURE_CAMERA_FLASH.equals(f.name)) {
? ? ? ? ? ? ? ? flag = true;
? ? ? ? ? ? ? ? break;
? ? ? ? ? ? }
? ? ? ? }
? ? ? ? return flag;
? ? }
}


运行效果图


?


至此,主要代码已经贴出,没什么技术含量,算是Android学习过程中的一个小结,Android在线API的一个阅读笔记。


首页 上一页 3 4 5 6 下一页 尾页 6/6/6
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇Android平台之不预览获取照相机预.. 下一篇Android设置选项开发及自定义Pref..

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: