【Android Developers Training】 49. 轻松录制

系统 1630 0

注:本文翻译自Google官方的Android Developers Training文档,译者技术一般,由于喜爱安卓而产生了翻译的念头,纯属个人兴趣爱好。

原文链接: http://developer.android.com/training/camera/videobasics.html


这节课将展示如何利用现有的相机应用来录制视频。

假设你的应用有一个巨大的任务,而集成视频是它的一部分。你希望尽可能简单地录制视频,并且不要因此而重新构建一个摄像的程序。幸好,Android设备上已经有了一个可以录制视频的相机应用,在这节课中,你将会让它来为你的应用服务。


一). 请求相机权限 

要声明你的应用需要依赖摄像头,在清单文件中加入 <uses-feature> 标签:

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

                  android:required
      
      
        ="true"
      
      
        />
      
      
        

    ...


      
      
        </
      
      
        manifest
      
      
        >
      
    

如果你的应用使用,但并不依赖一个相机来执行功能,那么将“ android:required ”设置为“ false ”。这样的话,那么Google Play将会允许没有相机的设备下载你的应用。那么接下来就是你的责任负责相机是否可用了,在运行时如果调用了需要用相机的函数时,通过调用 hasSystemFeature(PackageManager.FEATURE_CAMERA) 检查是否可以获取相机。如果相机无法获取,那么你就应该禁止你的相关功能特性。


二). 通过一个相机应用录制视频

在Android中向其它应用分发意图是通过激活一个描述你的意图的 Intent 。这一过程分为三步: Intent 自身,调用外部 Activity ,当焦点回到你的activity中处理视频数据的一些代码。

下面的例子是激活一个intent来录制视频:

      
        static
      
      
        final
      
      
        int
      
       REQUEST_VIDEO_CAPTURE = 1
      
        ;




      
      
        private
      
      
        void
      
      
         dispatchTakeVideoIntent() {

    Intent takeVideoIntent 
      
      = 
      
        new
      
      
         Intent(MediaStore.ACTION_VIDEO_CAPTURE);

    
      
      
        if
      
       (takeVideoIntent.resolveActivity(getPackageManager()) != 
      
        null
      
      
        ) {

        startActivityForResult(takeVideoIntent, REQUEST_VIDEO_CAPTURE);

    }

}
      
    

注意这里 startActivityForResult() 方法被一个前提所保护,那就是通过调用 resolveActivity() ,返回第一个可以处理该intent的组件。执行这个检查时很重要的因为如果你调用了 startActivityForResult() 并使用一个没有一个应用可以处理的intent,你的应用将会崩溃。所以只要结果不是null,那么使用这个intent是安全的。


三). 查看视频

Android相机应用会在 onActivityResult() 方法中将视频以一个指向视频存储位置的 Uri 的形式,放置在 Intent 中,并将其返回。下面的代码即获取这个视频并且在 VideoView 中显示它:

      
        @Override


      
      
        protected
      
      
        void
      
       onActivityResult(
      
        int
      
       requestCode, 
      
        int
      
      
         resultCode, Intent data) {

    
      
      
        if
      
       (requestCode == REQUEST_VIDEO_CAPTURE && resultCode ==
      
         RESULT_OK) {

        Uri videoUri 
      
      =
      
         intent.getData();

        mVideoView.setVideoURI(videoUri);

    }

}
      
    

【Android Developers Training】 49. 轻松录制视频


更多文章、技术交流、商务合作、联系博主

微信扫码或搜索:z360901061

微信扫一扫加我为好友

QQ号联系: 360901061

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描下面二维码支持博主2元、5元、10元、20元等您想捐的金额吧,狠狠点击下面给点支持吧,站长非常感激您!手机微信长按不能支付解决办法:请将微信支付二维码保存到相册,切换到微信,然后点击微信右上角扫一扫功能,选择支付二维码完成支付。

【本文对您有帮助就好】

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描上面二维码支持博主2元、5元、10元、自定义金额等您想捐的金额吧,站长会非常 感谢您的哦!!!

发表我的评论
最新评论 总共0条评论