zoukankan      html  css  js  c++  java
  • 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():释放视频资源;

  • 相关阅读:
    使用union all 遇到的问题(俩条sql语句行数的和 不等于union all 后的 行数的和 !);遗留问题 怎么找到 相差的呐俩条数据 ?
    78W的数据使用forall 进行批量转移;
    oracle 不能是用变量来作为列名和表名 ,但使用动态sql可以;
    oracle 查询优化及sql改写
    (十三)Jmeter之Bean Shell 的使用(二)
    (十二)Jmeter之Bean Shell的使用(一)
    (十一)Jmeter另一种调试工具 HTTP Mirror Server
    Image Processing and Computer Vision_Review:A survey of recent advances in visual feature detection(Author's Accepted Manuscript)——2014.08
    Image Processing and Computer Vision_Review:Local Invariant Feature Detectors: A Survey——2007.11
    Image Processing and Computer Vision_Review:A survey of recent advances in visual feature detection—2014.08
  • 原文地址:https://www.cnblogs.com/tengtao93/p/5281618.html
Copyright © 2011-2022 走看看