获取图片,视频,音频
2016-07-09 19:07
351 查看
待完善
权限
public class MainActivity extends Activity{ public static final int MEDIA_TYPE_IMAGE = 1; public static final int MEDIA_TYPE_VIDEO = 2; private MediaRecorder mr; private boolean preppare=false; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); mr=new MediaRecorder(); init(); } private void init() { // TODO Auto-generated method stub mr.release(); //设置音源 mr.setAudioSource(MediaRecorder.AudioSource.MIC); //输出格式 mr.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP); mr.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB); String path=Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_MUSIC)+file.separator+System.currentTimeMillis()+".mp3"; mr.setOutputFile(path); preppare=true; try { mr.prepare(); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } } //开始录音 public void start(View v){ if(preppare=true){ mr.start(); } } //停止录音 public void stop(View v){ if(preppare=true){ mr.stop(); } } public void CamerStart(View v) { Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); intent.putExtra(MediaStore.EXTRA_OUTPUT, getOutpuMediaFileUri(MEDIA_TYPE_IMAGE)); startActivityForResult(intent, MEDIA_TYPE_IMAGE); } public void VodioStart(View v){ Intent intent=new Intent(MediaStore.ACTION_VIDEO_CAPTURE); intent.putExtra(MediaStore.EXTRA_OUTPUT, getOutpuMediaFileUri(MEDIA_TYPE_VIDEO)); //视频质量 intent.putExtra(MediaStore.EXTRA_VIDEO_QUALITY, 1); startActivityForResult(intent, MEDIA_TYPE_VIDEO); } @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { // TODO Auto-generated method stub super.onActivityResult(requestCode, resultCode, data); switch (resultCode) { case RESULT_OK: if(MEDIA_TYPE_IMAGE==resultCode){ Uri data2 = data.getData(); Log.i("地址",""+file); }else if(MEDIA_TYPE_VIDEO==resultCode){ Log.i("地址",""+file); } break; default: break; } } File file; public Uri getOutpuMediaFileUri(int type) { file = getOutMediaFile(type); Uri uri = Uri.fromFile(file); return uri; } private File getOutMediaFile(int type) { File file = null; String rootpath=null; switch (type) { case MEDIA_TYPE_IMAGE: rootpath=Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES).getPath(); file=new File(rootpath+File.separator+System.currentTimeMillis()+".jpg"); break; case MEDIA_TYPE_VIDEO: rootpath=Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_MOVIES).getPath(); file=new File(rootpath+File.separator+System.currentTimeMillis()+".mp4"); break; } return file; } }
权限
<!-- 相机 --> <uses-permission android:name="android.permission.CAMERA" /> <!-- SD权限 --> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> <!-- 视频 --> <uses-permission android:name="android.permission.RECORD_AUDIO" /> <uses-feature android:name="android.hardware.Camera" android:required="false" />
相关文章推荐
- cannot resolve symbol R解决方法。
- 华为机试---亮灯数量
- Netty:数据处理流程
- 从零开始学习SLAM
- IOS常用代码总结 - 第三方库部分
- 【网络基础】URI 和 URL 的纠缠
- C++类型转换总结
- GreenDao的使用
- SGU_390_Tickets(另类数位DP)
- Webx3原理分析
- maven项目发布到tomcat后没有lib文件夹解决办法
- SGU_390_Tickets(另类数位DP)
- Android设置背景色
- xenserver安装文档
- Microsoft HoloLens 技术解谜(下)
- 工作思维定位,PDCA循环
- leetcode: Word Pattern
- ffmpeg compile
- OkHttp源码解析(一)——整体流程(上)
- Cesium(三) 几何图形与外观