android刻录软件开发,Android 视频刻录

Android 视频刻录

可以通过调用系统自带的相机来实现,不过这样做灵活性较低,我们可以通过使用MediaRecorder对象和SurfaceView控件来实现视频刻录。这里要求应用时横屏全屏显示。

界面设计

横屏和全屏

横屏显示

我们在AndroidManifest.xml文件中,为我们需要横屏显示的Activity添加相应的属性:

android:screenOrientation="landscape"

全屏显示

在加载界面之前对Activity进行配置:

//去掉标题

requestWindowFeature(Window.FEATURE_NO_TITLE);

// 全屏

getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,

WindowManager.LayoutParams.FLAG_FULLSCREEN);

setContentView(R.layout.activity_main);

应用界面

主要包含两部分,用于显示摄像头采集回显的预览画面,由SurfaceView来实现,另外就是停止和开始录制两个Button了,与相机应用类似,我们需要在帧布局嵌入相对布局来实现。

界面设计如下:

这里相对布局的visibility的属性值为gone,我们通过在MainActivity中重写onTouchEvent()方法来实现触摸显示。

@Override

public boolean onTouchEvent(MotionEvent event) {

if (event.getAction() == MotionEvent.ACTION_DOWN) {

// or layout.setVisibility(ViewGroup.VISIBLE);

layout.setVisibility(RelativeLayout.VISIBLE);

}

return super.onTouchEvent(event);

}

业务逻辑

配置SurfaceView

首先找到SurfaceView对象,通过getHolder()方法获取SurfaceHolder对象并进行相应配置:

surfaceView = (SurfaceView) this.findViewById(R.id.surfaceView);

surfaceView.getHolder().setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS);

surfaceView.getHolder().setKeepScreenOn(true);

配置MediaRecorder对象

类似于MediaPlay,我们对其创建出来的对象进行相应的配置,主要有以下内容:

视频来源

声音来源

视频输出格式

视频编码格式

帧率

声音编码格式

文件输出路径

视频预览输出对象

File file = new File(SD_ROOTPATH, SYSTEMTIME + ".3gp");

mediaRecorder = new MediaRecorder();

mediaRecorder.setAudioSource(MediaRecorder.AudioSource.MIC);

mediaRecorder.setVideoSource(MediaRecorder.VideoSource.CAMERA);

mediaRecorder.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP);

//mediaRecorder.setVideoSize(320, 240);

mediaRecorder.setVideoFrameRate(10);

mediaRecorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB);

mediaRecorder.setVideoEncoder(MediaRecorder.VideoEncoder.H264);

mediaRecorder.setOutputFile(file.getAbsolutePath());

mediaRecorder.setPreviewDisplay(surfaceView.getHolder().getSurface());

完成配置之后,就可以开始缓冲并开始录制了:

mediaRecorder.prepare();

mediaRecorder.start();

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值