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);