두 개의 활동 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();
}
});
}
}
그래 ...하지만 난 다른 제대로 한 활동에서 값을 전달하고 ?? – user7328722
예, 번들 또는 통과 의도를 사용하여 동영상 경로를 다른 활동으로 전달하십시오. – Naitik
이 스레드를 살펴보십시오. http://stackoverflow.com/questions/8017374/how-to-pass-a-uri-to-an-intent –