Android:麦克风及摄像头使用 14

24 篇文章 0 订阅
24 篇文章 0 订阅
  • Android手机设备调用方式

之前的课程中我们介绍过,Android中硬件的驱动都在系统层,这些驱动都是由C/C++语言编写的,Java语言写的代码是无法直接调用的,并且每一台手机所使用的硬件可能都不一样,同样功能的设备驱动也可能不同,那该怎么办呢?

Android的系统开发工程师已经想到了这一点,在应用框架层统一给我们做好了用来调用这些设备的API(应用程序接口),方便APP开发者来调用,并且不用花费精力去关心这些硬件的驱动如何去运行。

这些API可以被分为两类:硬件API和功能API

 

  • 硬件API调用举例camera

1) static Camera open():打开Camera,返回一个Camera实例。

2) static Camera open(int cameraId):根据cameraId打开一个Camera,返回一个Camera实例。

3) final void release():释放掉Camera的资源。

4) static int getNumberOfCameras():获取当前支持的Camera硬件个数。

5) Camera.Parameters getParameters():获取Camera的各项参数设置类。

6) void setParameters(Camera.Parameters params):通过params把Camera的各项参数写入到Camera中。

7) final void setDisplayOrientation(int degrees):摄像预览的旋转度。

8) final void setPreviewDisplay(SurfaceHolder holder):设置Camera预览的SurfaceHolder。

9) final void starPreview():开始Camera的预览

10) final void stopPreview():停止Camera的预览

11) final void autoFocus(Camera.AutoFocusCallback cb):自动对焦。

12) final takePicture(Camera.ShutterCallback shutter,Camera.PictureCallback raw,Camera.PictureCallback jpeg):拍照。

13) final void lock():锁定Camera硬件,使其他应用无法访问。

14) final void unlock():解锁Camera硬件,使其他应用可以访问。

 

  • 硬件功能使用框架MediaRecord

getAudioSourceMax() 获取音频信号源的最高值。

getMaxAmplitude() 最后调用这个方法采样的时候返回最大振幅的绝对值

getMetrics() 返回当前Mediacorder测量的数据

pause() 暂停录制

prepare() 准备录制

resume() 恢复录制

release() 释放与此MediaRecorder对象关联的资源

reset() 重新启动mediarecorder到空闲状态

setAudioChannels(int numChannels) 设置录制的音频通道数

setAudioEncoder(int audio_encoder) 设置audio的编码格式

setAudioEncodingBitRate(int bitRate) 设置录制的音频编码比特率

setAudioSamplingRate(int samplingRate) 设置录制的音频采样率

setAudioSource(int audio_source) 设置用于录制的音源

setMaxDuration(int max_duration_ms) 设置记录会话的最大持续时间(毫秒)

setMaxFileSize(long max_filesize_bytes) 设置记录会话的最大大小(以字节为单位)

setOutputFile(FileDescriptor fd) 传递要写入的文件的文件描述符

setOutputFile(String path) 设置输出文件的路径

setOutputFormat(int output_format) 设置在录制过程中产生的输出文件的格式

setLocation(float latitude, float longitude) 设置并存储在输出文件中的地理数据(经度和纬度)

setOnErrorListener(MediaRecorder.OnErrorListener l) 注册一个用于记录录制时出现的错误的监听器

setOnInfoListener(MediaRecorder.OnInfoListener listener) 注册一个用于记录录制时出现的信息事件

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Android 10中,应用程序需要在运行时请求访问摄像头麦克风权限,以便用户在使用应用程序时可以控制对其设备的访问。以下是请求权限的步骤: 1. 在AndroidManifest.xml文件中添加相应的权限声明。例如: ``` <uses-permission android:name="android.permission.CAMERA" /> <uses-permission android:name="android.permission.RECORD_AUDIO" /> ``` 2. 在应用程序中请求权限。您可以使用以下代码请求权限: ``` if (ContextCompat.checkSelfPermission(this, Manifest.permission.CAMERA) != PackageManager.PERMISSION_GRANTED) { // Permission is not granted // Request permission ActivityCompat.requestPermissions(this, arrayOf(Manifest.permission.CAMERA), MY_PERMISSIONS_REQUEST_CAMERA) } else { // Permission has already been granted // Do your work here } ``` 3. 处理权限请求的结果。在用户允许或拒绝权限请求后,系统将调用应用程序的onRequestPermissionsResult()方法。您可以使用以下代码处理权限请求的结果: ``` override fun onRequestPermissionsResult(requestCode: Int, permissions: Array<String>, grantResults: IntArray) { when (requestCode) { MY_PERMISSIONS_REQUEST_CAMERA -> { // If request is cancelled, the result arrays are empty. if (grantResults.isNotEmpty() && grantResults[0] == PackageManager.PERMISSION_GRANTED) { // Permission has been granted. Do your work here. } else { // Permission denied by user. Show a message or disable features that require the permission. } return } } } ``` 这样,您的应用程序就可以在运行时请求和处理摄像头麦克风权限了。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值