问题
I have four videos that are loading on one activity from a url. Now the problem is that when i start the activity all videos plays at the same time. What actually i want is to stop all videos at start and when user clicks on the play button the selected video should be played. If someone has any tutorial or any help with code regarding this problem please help me.
Edit:
Here is my Activity code.
MediaController mediaController;
private static String Video_url="http://mywebsite.com/files/video1.mp4";
private static String Video_url2="http://mywebsite.com/files/video2.mp4";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.url_activity_video);
VideoView video = (VideoView)findViewById(R.id.videoView);
VideoView video2 = (VideoView)findViewById(R.id.videoView2);
mediaController = new MediaController(this);
getWindow().setFormat(PixelFormat.UNKNOWN);
mediaController.setAnchorView(video);
String Video=Video_url;
video.setMediaController(mediaController);
video.setVideoURI(Uri.parse(Video));
video.start();
///////////// Video 2 /////////
mediaController.setAnchorView(video2);
String Video2=Video_url2;
video.setMediaController(mediaController);
video.setVideoURI(Uri.parse(Video2));
video.start();
}
回答1:
You can simply create a buttons and on button click listeners you can add following code :
button1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
playVideo1(your video url)
}
});
button2.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
playVideo2(your video url)
}
});
public static void playVideo1(String urlPath) {
VideoView mVideoview; // Added this line
mVideoView =(VideoView) findViewByid(R.yourvideoviewid);
try {
// Start the MediaController
MediaController mediacontroller = new MediaController(mContext);
mediacontroller.setAnchorView(mVideoview);
// Get the URL from String VideoURL
Uri mVideo = Uri.parse(urlPath);
mVideoview.setMediaController(mediacontroller);
mVideoview.setVideoURI(mVideo);
} catch (Exception e) {
Log.e("Error", e.getMessage());
e.printStackTrace();
}
mVideoview.requestFocus();
mVideoview.setOnPreparedListener(new OnPreparedListener() {
// Close the progress bar and play the video
public void onPrepared(MediaPlayer mp) {
mVideoview.start();
}
});
mVideoview.setOnCompletionListener(new OnCompletionListener() {
public void onCompletion(MediaPlayer mp) {
}
});
}
Hope this answers your question.
回答2:
You are starting both the videos in onCreate
Method , So it is starts playing both the video at the same time .
Do as below ,
button1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
video1.start();
}
});
button2.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
video2.start();
}
});
And also that in the code you posted the video
object is initialized 2 times .
It should be video2
for second video , As per your code
来源:https://stackoverflow.com/questions/22376679/android-multiple-video-error