0

두 개의 활동 Main Activity.java 및 VideoViewActivity.java 나는 비디오를 녹화하고 비트 맵을 작성하여 Main Activity.java의 arraylist에 저장하면 다음을 전달합니다. 비디오 파일 경로 (즉, 녹화 된 비디오)를 VideoViewActivity에 저장하고 비디오 뷰에서 비디오를 재생하려고합니다. 내가 썸네일을 클릭하면다른 활동에서 비디오보기를 사용하여 녹화 된 비디오를 재생하는 방법

MainActivity

private List<Bitmap> bitMapsAvailable = new ArrayList<>();//Bitmaps of video files 
    private List<String> bitMapsFilePath = new ArrayList<>();//video files path 



private void showThumbnails() { 

    LinearLayout layout = (LinearLayout) findViewById(R.id.thumbnails); 

    bitMapIndex = 0; 
    if (layout.getChildCount() > 0) { 
     layout.removeAllViews(); 
    } 
    for (Bitmap eachBitMap : bitMapsAvailable) { 

     bitMapIndex++; 
     ImageView thumb = new ImageView(this); 
     thumb.setId(new Integer(bitMapIndex+ 17)); 
     thumb.setLayoutParams(new android.view.ViewGroup.LayoutParams(100, 80)); 
     thumb.setImageBitmap(eachBitMap); 

     thumb.setOnClickListener(previewThumb(thumb)); 
     layout.addView(thumb); 

     CheckBox deleteCheckBox = new CheckBox(this); 
     deleteCheckBox.setId(new Integer(bitMapIndex)); 

     deleteCheckBox.bringToFront(); 
     deleteCheckBox.setOnClickListener(deleteRelatedThumbnail(deleteCheckBox)); 

     layout.addView(deleteCheckBox); 

     CheckBox saveCheckBox = new CheckBox(this); 
     saveCheckBox.setId(new Integer(bitMapIndex + 31)); 
     saveCheckBox.bringToFront(); 

     saveCheckBox.setOnClickListener(saveRelatedThumbnail(saveCheckBox)); 
     layout.addView(saveCheckBox); 

     String("check").concat(new Integer(checkTagNumber++).toString())); 

    } 
} 
View.OnClickListener previewThumb(final ImageView imageview) { 

    return new View.OnClickListener() { 
     public void onClick(View arg0) { 

      int index = imageview.getId()-18; 


      Intent myIntent = new Intent(MainActivity.this, 
        VideoViewActivity.class); 
       findViewById(R.id.VideoView); 
      Bundle bundle = new Bundle(); 

      //Add your data to bundle 
      bundle.putString("url", bitMapsFilePath.get(index)); 
      myIntent.putExtras(bundle); 
      startActivity(myIntent); 


     } 
    }; 
} 

VideoViewActivity .. 그것은 VideoViewActivity에서 비디오를 재생해야하지만, 응용 프로그램은 내가 plsss 도와주세요? 잘못하고있는 무슨 thumbnail.Where를 클릭 할 때 충돌한다

public class VideoViewActivity extends Activity { 

    public VideoView videoview; 

    Bundle bundle = getIntent().getExtras(); 
    String videoURL = bundle.getString("url"); 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 

     setContentView(R.layout.videoview_main); 

     videoview = (VideoView) findViewById(R.id.VideoView); 

     Toast.makeText(this, videoURL, Toast.LENGTH_SHORT).show(); 

     try { 
      // Start the MediaController 
      MediaController mediacontroller = new MediaController(
        VideoViewActivity.this); 
      mediacontroller.setAnchorView(videoview); 
      // Get the URL from String VideoURL 
      Uri video = Uri.parse(videoURL); 
      videoview.setMediaController(mediacontroller); 
      videoview.setVideoURI(video); 

     } catch (Exception e) { 
      Log.e("Error", e.getMessage()); 
      e.printStackTrace(); 
     } 

     videoview.requestFocus(); 
     videoview.setOnPreparedListener(new OnPreparedListener() { 
      // Close the progress bar and play the video 
      public void onPrepared(MediaPlayer mp) { 

       videoview.start(); 
      } 
     }); 

    } 

} 

답변

0
Bundle bundle = getIntent().getExtras(); 
    String videoURL = bundle.getString("url"); 

전송이 두 줄 당신의 VideoViewActivity

0

다른 활동에서 아래 코드를 사용하여 비디오를 재생할 수 있습니다.

Uri uri = Uri.parse(URL); //Declare your url here. 

VideoView mVideoView = (VideoView)findViewById(R.id.videoview) 
mVideoView.setMediaController(new MediaController(this));  
mVideoView.setVideoURI(uri); 
mVideoView.requestFocus(); 
mVideoView.start(); 
+0

그래 ...하지만 난 다른 제대로 한 활동에서 값을 전달하고 ?? – user7328722

+0

예, 번들 또는 통과 의도를 사용하여 동영상 경로를 다른 활동으로 전달하십시오. – Naitik

+0

이 스레드를 살펴보십시오. http://stackoverflow.com/questions/8017374/how-to-pass-a-uri-to-an-intent –

0

OU 할 수 없습니다 getIntent()에서 onCreate 전() - 그 시점에서 사용할 수 단순히 어떤 의도가 없습니다. 이런 일에 코드를 변경 :에 onCreate() 방법 내부

public class VideoViewActivity extends Activity { 

public VideoView videoview; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.videoview_main); 
    videoview = (VideoView) findViewById(R.id.VideoView); 
    Toast.makeText(this, videoURL, Toast.LENGTH_SHORT).show(); 

    Bundle bundle = getIntent().getExtras(); 
    String videoURL = bundle.getString("url"); 

    try { 
     // Start the MediaController 
     MediaController mediacontroller = new MediaController(
       VideoViewActivity.this); 
     mediacontroller.setAnchorView(videoview); 
     // Get the URL from String VideoURL 
     Uri video = Uri.parse(videoURL); 
     videoview.setMediaController(mediacontroller); 
     videoview.setVideoURI(video); 

    } catch (Exception e) { 
     Log.e("Error", e.getMessage()); 
     e.printStackTrace(); 
    } 

    videoview.requestFocus(); 
    videoview.setOnPreparedListener(new OnPreparedListener() { 
     // Close the progress bar and play the video 
     public void onPrepared(MediaPlayer mp) { 

      videoview.start(); 
     } 
    }); 

}