创建多媒体APP 之 捕获图像:简单的拍录视频

这一节讲述一下如何利用已经存在的相机应用来录制视频。

你的APP是要完成某个功能,而集成在里面的视频拍摄只是很小的一部分工作。你需要用最小的精力去实现这个功能,而不是重新去创建一个摄像机的应用。值得高兴的是,绝大多数的android设备都提供一个相机的应用,可以直接用来录制视频。这节课程里面,我们就讲述这个。

请求相机权限

要声明你的APP是基于相机的一个应用,用<uses-feature>来声明:

<manifest ... >
    <uses-feature android:name="android.hardware.camera" />
    ...
</manifest ... >


如果你的应用使用了它,但是并不必须需要请求相机来做某项功能,那么增加android:required="false"到上面那个标签里面。这样做的话,Google Play会允许那些没有相机的手机来可以下载你的这个应用。那么你就需要在调用相机之前判断相机是否存在hasSystemFeature(PackageManager.FEATURE_CAMERA)。如果相机不存在,无法使用,那么你的程序就要关闭这些和相机相关的特性功能。

利用相机APP录制视频

android授权另外一个app执行某个动作是通过intent来设定这个动作,并且和另外一个APP相关联。也是分三个部分:intent自身,启动外部activity,处理录制视频返回的结果。

下面的例子就是利用intent,和拍照应用关联:

private void dispatchTakeVideoIntent() {
    Intent takeVideoIntent = new Intent(MediaStore.ACTION_VIDEO_CAPTURE);
    startActivityForResult(takeVideoIntent, ACTION_TAKE_VIDEO);
}


最好确保有APP可以处理这个intent.下面的代码就是可以判断这个APP是存在:

public static boolean isIntentAvailable(Context context, String action) {
    final PackageManager packageManager = context.getPackageManager();
    final Intent intent = new Intent(action);
    List<ResolveInfo> list =
        packageManager.queryIntentActivities(intent,
            PackageManager.MATCH_DEFAULT_ONLY);
    return list.size() > 0;
}


查看视频

android的拍照应用会返回一个存放视频的intent,这个intent被发送给onActivityResult()函数,作为一个Uri地址,指出了视频存放的位置。下面的视频就是获取录制的视频,并且在 VideoView显示出来:

private void handleCameraVideo(Intent intent) {
    mVideoUri = intent.getData();
    mVideoView.setVideoURI(mVideoUri);
}


 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值