注意:本页面提及已弃用的 Camera 类。建议使用 CameraX,对于特定用例,可使用 Camera2。CameraX 和 Camera2 都支持 Android 5.0(API 级别 21)及更高版本。
本课程介绍如何使用现有摄像头应用捕获视频。
您的应用有其特定的用途,而集成视频只是其中很小的一部分。您希望以最简单的方式拍摄视频,而不是重新发明摄像机。令人欣慰的是,大多数 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 Camera 应用会在传递给 Intent
的 onActivityResult()
中返回视频,该视频以指向存储中视频位置的 Uri
的形式返回。以下代码会检索此视频并将其显示在 VideoView
中。
Kotlin
override fun onActivityResult(requestCode: Int, resultCode: Int, intent: Intent) { if (requestCode == REQUEST_VIDEO_CAPTURE && resultCode == RESULT_OK) { val videoUri: Uri = intent.data videoView.setVideoURI(videoUri) } }
Java
@Override protected void onActivityResult(int requestCode, int resultCode, Intent intent) { if (requestCode == REQUEST_VIDEO_CAPTURE && resultCode == RESULT_OK) { Uri videoUri = intent.getData(); videoView.setVideoURI(videoUri); } }