Android--多媒体操作
---恢复内容开始---
1、拍照,这里直接上代码,看注释就好
public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); takePhoto = (Button) findViewById(R.id.take_photo); photo = (ImageView) findViewById(R.id.photo); takePhoto.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { File outputImage = new File(Environment.getExternalStorageDirectory(), "tempImage.jpg");//这里新建一个文件类,该文件用于保存拍照所得的图片,getExternalStorageDirectory(),表示存在手机SD卡根目录 try{ if(outputImage.exists()){ outputImage.delete(); } outputImage.createNewFile(); }catch (IOException e){ e.printStackTrace(); } imageUri = Uri.fromFile(outputImage);//将文件转换Uri对象 Intent intent = new Intent("android.media.action.IMAGE_CAPTURE");//启动照相机程序的action intent.putExtra(MediaStore.EXTRA_OUTPUT, imageUri);//指定拍照后图片输出地址为前面创建的Uri对象 startActivityForResult(intent, TAKE_PHOTO);//启动照相机 } }); }
--文件存储需要由权限:
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
2、相册选择照片并显示:
choosePhoto = (Button)findViewById(R.id.choose_photo); choosePhoto.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { Intent intent = new Intent(Intent.ACTION_PICK,android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI);//打开相册并,返回选中照片的Uri startActivityForResult(intent, CHOOSE_PHOTO); } });
protected void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); switch(requestCode){ case CHOOSE_PHOTO: if(resultCode == RESULT_OK){ try{ Uri uri = data.getData();//获取选中图片的Uri Bitmap bitmap = BitmapFactory.decodeStream(getContentResolver().openInputStream(uri));//根据Uri加载图片为Bitmap photo.setImageBitmap(bitmap); }catch (FileNotFoundException e){ e.printStackTrace(); } } break; } }
--上述操作中,由于选中的图片可能会很大,通常需要压缩后再进行显示;
3、音频播放
1)Android 中通过使用 MediaPlayer 类来实现音频播放,它的常用控制方法有:
--setDataSource():设置要播放的音频文件的位置;
--prepare():在开始播放之前调用这个方法完成准备工作;
--start():开始或继续播放音频;
--pause():暂停播放音频;
--reset():将MediaPlayer 对象重置到刚刚创建的状态;
--seekTo():从指定的位置开始播放音频;
--stop():停止播放音频。调用这个方法后的MediaPlayer 对象无法再播放音频
--release():释放掉与MediaPlayer 对象相关的资源;
--isPlaying():判断当前MediaPlayer 是否正在播放音频;
--getDuration():获取载入的音频文件的时长;
4、播放视频:
1)Android 中通过 VideoView 类来实现视频的操作,它的常用方法有:
--setVideoPath():设置要播放的视频文件的位置;
--start():开始或继续播放视频;
--pause():暂停播放视频;
--resume():将视频重头开始播放;
--seekTo():从指定的位置开始播放视频;
--isPlaying():判断当前是否正在播放视频;
--getDuration():获取载入的视频文件的时长;
--suspend():释放视频资源;