1

私が欲しいのは画像と同じです。ユーザーがボタン (私の場合は VideoView 自体) をクリックすると、ギャラリーを開いてビデオを VideoView にロードできるようにしたいと考えています。

vv_video = (VideoView) findViewById(R.id.vv_video);
         vv_video.setOnTouchListener(new View.OnTouchListener() {

            @Override
            public boolean onTouch(View v, MotionEvent event) {
                Intent intent = new Intent();
                intent.setType("video/*");
                intent.setAction(Intent.ACTION_GET_CONTENT);
                startActivityForResult(Intent.createChooser(intent, "Complete action using"), LOAD_VIDEO);

                return false;
            }
        });


 @Override
    public void onActivityResult(int requestCode, int resultCode, Intent data) {
        if (resultCode != RESULT_OK) return;

        switch (requestCode) {

            case LOAD_VIDEO:
                Toast.makeText(NewBucketActivity.this, "test", Toast.LENGTH_SHORT).show(); //this appears!
                Bundle video = data.getExtras();
                mVideoCaptureUri = video.getParcelable("data");
                vv_video.setVideoURI(mVideoCaptureUri);
                break;
        }
    }

しかし、ギャラリーでビデオを選択しても何も起こりません。Toast msg が表示されるので、Sg を Bundle または Uri でめちゃくちゃにしました。VideoView に表示されるはずですよね?

4

2 に答える 2

0

onActivityResult メソッドを変更すると機能します。

@Override
       public void onActivityResult(int requestCode, int resultCode, Intent data) {
           if (resultCode != RESULT_OK) return;

           switch (requestCode) {

               case LOAD_VIDEO:
                   Toast.makeText(Pdf.this, "test", Toast.LENGTH_SHORT).show(); //this appears!
              //     Bundle video = data.getData();
                  Uri  mVideoCaptureUri = data.getData();
                   vv_video.setVideoURI(mVideoCaptureUri);
                   vv_video.start(); 
                   break;
           }
       }
于 2015-11-16T11:34:20.163 に答える
0

startactivity意図の後

Uri mVideoURI = data.getData();  
   vv_video.setVideoURI(mVideoURI);
    vv_video.start(); 

それはうまくいく(私はそう思う)

于 2015-11-16T10:48:04.193 に答える