Android: Multiple video error

。_饼干妹妹 提交于 2019-12-13 00:08:17

问题


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

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!