android硬件API学习笔记

本文详细介绍安卓系统中媒体播放、录制、摄像头操作、传感器应用及蓝牙、WiFi配置的方法,覆盖了从媒体文件的播放到设备功能的全面利用。

1.媒体播放器

一.播放音频

MediaPlayer:

方式一new:

MediaPlayer mpFIle =  new MediaPlayer();

mpFIle.setDataSource(Settings.System.DEFAULT_RINGTONE_URI.toString());

mpFile.prepare();

mpFile.start();

 

方式二静态方法:

MediaPlayer mpRes = MediaPlayer.create(context,R.raw.my_sound);

mpRes.start();

 

其中的控制指令:

stop,pause ,seek setLooping,getFrame,release

 

二.录制多媒体

MediaRecorder mediaRecorder = enw MediaRecorder();

权限:

RECORD_AUDIO,RECORD_VIDEO

设置音频源:

mediaRecorder.setAudioSource(MediaRecorder.AudioSource.MIC);

设置输出格式:

mediaRecorder.setOutputFormat(MediaRecorder.OutputFormat.DEFAULT);

设置编码:

mediaRecorder.setAudioEncoder(MediaRecorder.AudioEncoder.DEFAULT);

设置保存路径:

mediaRecorder.setOutputFIle("myoutputfile.mp4");  // prepare之前调用,否则Illegal State异常

开始录制:

mediaRecorder.prepare();

mediaRecorder.start();

结束:

mediaARecorder.stop();

mediaRecorder.release();

使用Media Store供其他程序访问本媒体数据:

ContentValues content = new ContentValues(3);

content.put(Audio.AudioColumns.TITLE,"title");

content.put(Audio.AudioColumns.DATE_ADDED,System.currentTimeMillis()/1000);

content.put(Audio.Media.MIME_TYPE,"audio/amr");

content.put(MediaStore.Audio.Media.DATA,"myoutputfile.mp4");

URI uri = getContentResolver().insert(Audio.Media.EXTERNAL_CONTENT_URI,content);// 插入系统媒体数据库

sendBroadcast(new Intent(Intent.ACTION_MEDIA_SCANNER_SCAN_FILE,uri));// 通知其他媒体应用

 

三.使用摄像头

 

权限:CAMERA

 

打开模型:

Camera camera = Camerea.open();

[... Do things with the camera ...]

camera.release();

 

控制摄像头设置:

模型:

Camera.Parameters param = camera.getParameters();

[... param setXXX ...]

camera.setParameters(param);

eg. param.setPictureFormat(PixelFormat.JPEG);// 设置图片格式(还可以设置预览尺寸,预览帧率)

 

摄像头预览模型:

camera.setPreviewDisplay(mySurface);

camera.startPreview();

[......]

camera.stopPreview();

 

获取摄像头预览视频帧:

camera.setPreviewCallback(new PreviewCallback(){

     public void onPreviewFrame(byte[] -data, Camera _camera){  /*待实现*/  }

});

四.照相

private void takePicture(){ camera.takePicture(shutterCallback, rawCallback, jpegCallback); }

ShutterCallback shutterCallback = new ShutterCallback(){ public void onShutter(){ /*待实现,快门关闭时候处理*/ } }

PictureCallback rawCallback = new PictureCallback(){ public void onPictureTaken(byte[] _data, Camera _camera){ /*使用图像原始数据*/ } };

PictureCallback jpegCallback = new PictureCallback(){ public void onPictureTaken(byte[] _data, Camera _camera){ /*使用图像JPEG数据*/ } };

2.传感器

获取管理器:

SensorManager sensorManager = (SensorManager)getSystemService(Context.SENSOR_SERVICE);

加速器

指南针

水平仪

3.蓝牙

权限: BLUETOOTH

获取设备:

BluetoothDevice bluetooth = (BluetoothDevice)getSystemService(context);

打开: enable

关闭:disable

设置模式:setMode 模式:discoverable/connectable

发现:bluetooth.startPeriodicDiscovery();或者bluetooth.startDiscovery(true);

配对:

!bluetooth.hasBonding(device)-->bluetooth.createBonding();-->removeBonding();

通信:socket

蓝牙耳机:BluetoothHeadset

 

4.WIFI

网络状态:

权限:ACCESS_NECWORK_STATE,CHANGE_NETWORK_STATE

获取网络服务的管理器:

ConnectivityManager connectivity = (ConnectivityManager)getSystemService(Context.CONNECTIVITY_SERVICE);

设置首选网络:

connectivity.setNetworkPreference(NetworkPreference.PREFER_WIFI);

wifi管理:

权限:ACCESS_WIFI_STATE,CHANGER_WIFI_STATE

管理WIFI:

WifiManger wifi = (Wifimanager)getSystemService(Context.WIFI_SERVICE);

开关:

!wifi.isWifiEnabled()-->wifi.getWifiSate()!=WifiManager.WIFI_STATE_ENABLEING--->wifi.setWifiEnabled(true);

 

5.震动器

权限:VIBRATE

获取设备:

Vibrator vibrator = (Vibrator)getSystemService(Context.VIBRATOR_SERVICE);

普通震动:

vibrator.vibrate(1000);// 震动一秒

频率震动:
long[] pattern = {1000, 2000, 4000, 8000, 16000};

vibrator.vibrate(pattern, 0);

 

 

 

 

 

 

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值