2014-11-20 2 views
1

안드로이드 응용 프로그램에서 비디오 업로드 기능을 구현하고 있습니다. 갤러리에서 비디오를 선택할 수는 있지만 내 활동에는 볼 수 없습니다. 활동의 VideoView를 지켜 보면서로 갤러리에서 비디오 갤러리에서 비디오를 선택하는 내 코드는 다음과 같습니다갤러리에서 선택한 활동으로 비디오를 보는 방법

mChoose.setOnClickListener(new View.OnClickListener() 
    { 
     @Override 
     public void onClick(View v) 
     { 
      Intent intent = new Intent(); 
      intent.setAction(Intent.ACTION_GET_CONTENT); 
      intent.addCategory(Intent.CATEGORY_OPENABLE); 
      intent.setType("video/*"); 
      startActivityForResult(intent, REQUEST_ID); 
     } 
    }); 

하여 onActivityResult 메소드의 코드

@Override 
protected void onActivityResult(int requestCode, int resultCode, Intent data) 
{ 
    InputStream stream = null; 
    if(requestCode == REQUEST_ID && resultCode == Activity.RESULT_OK) 
    { 
     try 
     { 
      stream = getContentResolver().openInputStream(data.getData()); 
      //System.out.println(data.getData()); 
      mVideo.setVideoPath(path); 
      path = getRealPathFromURI(getApplicationContext(), data.getData()); 
      //getRealPathFromURI is method in class to obtain path from uri 
      System.out.println(path); 

     } 
     catch(Exception ex) 
     { 
      ex.printStackTrace(); 
     } 
     if(stream != null) 
     { 
      try 
      { 
       stream.close(); 
      } 
      catch(Exception ex) 
      { 
       ex.printStackTrace(); 
      } 
     } 
    } 
} 

답변

1

사용이 C ode

@Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 
     mVideo = (VideoView) findViewById(R.id.videoView); 
     Intent intent = new Intent(Intent.ACTION_PICK, android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI); 
     intent.setType("video/*"); 
     startActivityForResult(intent, 1); 
    } 
@Override 
    protected void onActivityResult(int requestCode, int resultCode, Intent data) 
    { 
     if(requestCode == 1 && resultCode == Activity.RESULT_OK) 
     { 
      try 
      { 
       String path = data.getData().toString(); 
       mVideo.setVideoPath(path); 
       mVideo.requestFocus(); 
       mVideo.start(); 

      } 
      catch(Exception ex) 
      { 
       ex.printStackTrace(); 
      } 
     } 
    } 
+0

정말 고맙습니다. 이제 비디오에서 activity.But을 재생할 수 있습니다. 선택한 비디오의 이미지 만 표시 할 수 있고 사용자가 재생하려면 비디오 버튼을 눌러 재생할 수 있습니다. . 비디오가 자동으로 재생되지 않아야합니다. –

+0

비디오 경로에서 미리보기 이미지를 만들고 mVideo.setBackgroundDrawable (bitmapDrawable)로 적용 할 수 있습니다. 또는 다른보기를 겹쳐서 만듭니다. 내 대답이 도움이된다면 제 대답을 받아주십시오. –

+0

자동으로 시작하지 않으려면 mVideo.start()를 제거하고 mVideo.setMediaController (new MediaController (MainActivity.this))를 추가 할 수 있습니다. 재생 일시 중지 컨트롤을 얻는 방법 –

0
VideoView videoView = (VideoView) findViewById(R.id.videoview); 
Uri vidFile = Uri.parse(Environment.getExternalStorageDirectory() 
      .getAbsolutePath() + "path of the video"); 

    videoView.setVideoURI(vidFile); 
    videoView 
      .setMediaController(new MediaController(PlayVideoActivity.this)); 
    videoView.setVisibility(1); 
    videoView.bringToFront(); 
    videoView.requestFocus(); 
관련 문제