Android 多媒体

Android 多媒体

注意读写权限问题!

动态申请权限:

调用摄像头:

首先这里创建了一个File 对象,用于存储摄像头拍下的图片,这里我们把图片命名为output_image.jpg ,

并将它存放在手机SD 卡的根目录下,

调用Environment 的getExternalStorageDirectory()方法获取到的就是手机SD 卡的根目录。

然后再调用Uri 的 fromFile()方法将File 对象转换成Uri 对象,这个Uri 对象标识着output_image.jpg 这张图片的唯一地址。

接着构建出一个Intent对象,并将这个Intent的action指定为android.media.action. IMAGE_CAPTURE,

再调用Intent 的putExtra()方法指定图片的输出地址,这里填入刚刚得到的Uri 对象,

最后调用startActivityForResult()来启动活动。

由于我们使用的是一个隐式 Intent,系统会找出能够响应这个Intent 的活动去启动,这样照相机程序就会被打开,拍下的照片将会输出到output_image.jpg 中。

注意刚才我们是使用startActivityForResult()来启动活动的,因此拍完照后会有结果返回到onActivityResult()方法中,这个时候我们就可以调用BitmapFactory 的decodeStream()方法将output_image.jpg 这张照片解析成Bitmap 对象,然后把它设置到ImageView 中显示出来。

调用相册:

为了兼容新老版本的手机,我们做了一个判断,如果是4.4及以上系统的手机就调用handleImageOnKitKat()方法来处理图片,否则就调用handleImageBeforeKitKat()方法来处理图片。之所以要这么做,是因为Android系统从4.4版本开始,选取相册的图片不再返回图片真是的Uri了,而是一个封装过的Uri,因此如果是4.4版本以上的手机需要对这个Uri进行解析才行。

播放音频:

创建MediaPlayer对象;

调用setDataSource设置音频文件路径

在调用prepare方法使mediaPlayer进入准备状态

调用start开始播放、pause暂停播放、stop停止播放

播放视频:

主要应用VideoView控件完成

与播放音频基本相同

//设置播放源(非SD卡)

video_view.setVideoURI(Uri.parse("android.resource://com.example.ts.myapplication/" + R.raw.video0));

//SD卡根目录下

File file = new File(Environment.getExternalStorageDirectory(),"movie.mp4");

video_view.setVideoPath(file.getPath());

猜你喜欢

转载自blog.csdn.net/qq_34149526/article/details/82555513