Android--多媒体操作

Posted _taoGe

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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():释放视频资源;

以上是关于Android--多媒体操作的主要内容,如果未能解决你的问题,请参考以下文章

Android--多媒体操作

cling的异步操作

操作栏标签片段中的片段?

片段中的媒体控制器

Android 插件化VirtualApp 源码分析 ( 目前的 API 现状 | 安装应用源码分析 | 安装按钮执行的操作 | 返回到 HomeActivity 执行的操作 )(代码片段

Android Studio - 片段按钮操作