Skip to content Skip to sidebar Skip to footer

How To Play Multiple Video In Different Video View In One Activity

Sample Code: How to play the two video in one activity public class Two_videos extends Activity { VideoView video1, video2; @Override protected void onCreate(Bundle savedInstance

Solution 1:

Play multiple videos is depends on hardware but if your device supports only one instance of media Player then you must call yourVideoView.stopPlayBack() for playing video in another videoview. you can resume video in first videoview by using its resume() method but after stop playing from second.

Solution 2:

Your device should support playing multiple videos also quality of videos (HD videos) which needs high end devices else it will throw error.

I tried this code it works with all nexus devices.

Solution 3:

According to this answer, it is very much possible to play multiple videos simultaneously, but it depends on the device and its hardware. The Android version doesn't seem to matter. I'd suggest you read his comments and code for a better understanding.

Solution 4:

See below code , here play 4 video's in different video view in one activity

main_activity.xml

<LinearLayoutxmlns:android="http://schemas.android.com/apk/res/android"xmlns:tools="http://schemas.android.com/tools"android:layout_width="match_parent"android:layout_height="match_parent"android:layout_weight="1.0"android:orientation="vertical"android:paddingBottom="@dimen/activity_vertical_margin"android:paddingLeft="@dimen/activity_horizontal_margin"android:paddingRight="@dimen/activity_horizontal_margin"android:paddingTop="@dimen/activity_vertical_margin"tools:context="ycrathi.com.multiplevideoplay.MainActivity"><VideoViewandroid:id="@+id/v1"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_weight="0.25" /><VideoViewandroid:id="@+id/v2"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_weight="0.25" /><VideoViewandroid:id="@+id/v3"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_weight="0.25" /><VideoViewandroid:id="@+id/v4"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_weight="0.25" /></LinearLayout>

MainActivity.java

package ycrathi.com.multiplevideoplay;

import android.net.Uri;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.widget.VideoView;

publicclassMainActivityextendsAppCompatActivity {

    @OverrideprotectedvoidonCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        VideoViewv1= (VideoView) findViewById(R.id.v1);
        VideoViewv2= (VideoView) findViewById(R.id.v2);
        VideoViewv3= (VideoView) findViewById(R.id.v3);
        VideoViewv4= (VideoView) findViewById(R.id.v4);
        v1.setVideoURI(Uri.parse("http://192.168.1.1/Video/vid5.mp4"));
        v1.start();
        v1.requestFocus();
        v1.setKeepScreenOn(true);

        v2.setVideoURI(Uri.parse("http://192.168.1.1/Video/vid5.mp4"));
        v2.start();
        v2.requestFocus();
        v2.setKeepScreenOn(true);

        v3.setVideoURI(Uri.parse("http://192.168.1.1/Video/vid5.mp4"));
        v3.start();
        v3.requestFocus();
        v3.setKeepScreenOn(true);

        v4.setVideoURI(Uri.parse("http://192.168.1.1/Video/vid5.mp4"));
        v4.start();
        v4.requestFocus();
        v4.setKeepScreenOn(true);

    }
}

AndroidMenifest.xml

<?xml version="1.0" encoding="utf-8"?><manifestxmlns:android="http://schemas.android.com/apk/res/android"package="ycrathi.com.multiplevideoplay"><uses-permissionandroid:name="android.permission.INTERNET"/><uses-permissionandroid:name="android.permission.ACCESS_NETWORK_STATE"/><applicationandroid:allowBackup="true"android:icon="@mipmap/ic_launcher"android:label="@string/app_name"android:supportsRtl="true"android:theme="@style/AppTheme"><activityandroid:name=".MainActivity"><intent-filter><actionandroid:name="android.intent.action.MAIN" /><categoryandroid:name="android.intent.category.LAUNCHER" /></intent-filter></activity></application></manifest>

Solution 5:

Here is the full answer for showing multiple video in one activity. Working in all device. I have used Surfaceview and Textureview for Playing Videos.

Activity:

publicclassReactionViewActivityextendsAppCompatActivity   {
    privatestatic final StringTAG = ReactionViewActivity.class.getSimpleName();

    privateString mainVideo = "";
    privateProgressBar progress_bar;

    privateSurfaceView mSurfaceView;
    privateTextureView mTextureView;
    privateMediaPlayer mMediaPlayer, mMediaPlayer1;

    @OverrideprotectedvoidonCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_reaction_view);
        initView();
    }

    privatevoidinitView() {
        progress_bar = findViewById(R.id.progress_bar);
        mSurfaceView = findViewById(R.id.surface_view);
        mTextureView = findViewById(R.id.textureView);

        textureParams = (FrameLayout.LayoutParams) mTextureView.getLayoutParams();
        surfaceParams = (FrameLayout.LayoutParams) mSurfaceView.getLayoutParams();

        final String video = getIntent().getStringExtra("video");
        mTextureView.setSurfaceTextureListener(newTextureView.SurfaceTextureListener() {
            @OverridepublicvoidonSurfaceTextureAvailable(SurfaceTexture surfaceTexture, int i, int i1) {
                Surface surface = newSurface(surfaceTexture);
                try {
                    mMediaPlayer1 = newMediaPlayer();
                    mMediaPlayer1.setDataSource(video);
                    mMediaPlayer1.setSurface(surface);
                    mMediaPlayer1.setLooping(true);
                    mMediaPlayer1.prepareAsync();

                    // Play video when the media source is ready for playback.
                    mMediaPlayer1.setOnPreparedListener(newMediaPlayer.OnPreparedListener() {
                        @OverridepublicvoidonPrepared(MediaPlayer mediaPlayer) {
                            progress_bar.setVisibility(View.GONE);
                            mediaPlayer.start();
                        }
                    });
                    mMediaPlayer1.setAudioStreamType(AudioManager.STREAM_MUSIC);
                } catch (IllegalArgumentException e) {
                    Log.d(TAG, e.getMessage());
                } catch (SecurityException e) {
                    Log.d(TAG, e.getMessage());
                } catch (IllegalStateException e) {
                    Log.d(TAG, e.getMessage());
                } catch (IOException e) {
                    Log.d(TAG, e.getMessage());
                }
            }

            @OverridepublicvoidonSurfaceTextureSizeChanged(SurfaceTexture surfaceTexture, int i, int i1) {

            }

            @OverridepublicbooleanonSurfaceTextureDestroyed(SurfaceTexture surfaceTexture) {
                returnfalse;
            }

            @OverridepublicvoidonSurfaceTextureUpdated(SurfaceTexture surfaceTexture) {

            }
        });

        if (Objects.requireNonNull(getIntent().getExtras()).containsKey("mainVideo")) {
            mainVideo = getIntent().getStringExtra("mainVideo");
            mSurfaceView.getHolder().addCallback(newSurfaceHolder.Callback() {
                @OverridepublicvoidsurfaceCreated(SurfaceHolder surfaceHolder) {
                    mMediaPlayer = newMediaPlayer();
                    mMediaPlayer.setDisplay(surfaceHolder);
                    try {
                        mMediaPlayer.setDataSource(mainVideo);
                        mMediaPlayer.setLooping(true);
                        mMediaPlayer.prepare();
                        mMediaPlayer.setOnPreparedListener(newMediaPlayer.OnPreparedListener() {
                            @OverridepublicvoidonPrepared(MediaPlayer mediaPlayer) {
                                mMediaPlayer.start();
                            }
                        });
                        mMediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC);
                    } catch (IOException e) {
                        e.printStackTrace();
                    }
                }

                @OverridepublicvoidsurfaceChanged(SurfaceHolder surfaceHolder, int i, int i1, int i2) {

                }

                @OverridepublicvoidsurfaceDestroyed(SurfaceHolder surfaceHolder) {

                }
            });
        }

    }

    @OverridepublicvoidonBackPressed() {
        releaseMediaPlayer();
        finish();
    }


    @OverrideprotectedvoidonDestroy() {
        super.onDestroy();
        releaseMediaPlayer();
    }

    privatevoidreleaseMediaPlayer() {
        if (mMediaPlayer != null) {
            mMediaPlayer.release();
            mMediaPlayer = null;
        }

        if (mMediaPlayer1 != null) {
            mMediaPlayer1.release();
            mMediaPlayer1 = null;
        }
    }
}

XML:

<?xml version="1.0" encoding="utf-8"?><RelativeLayoutxmlns:android="http://schemas.android.com/apk/res/android"xmlns:tools="http://schemas.android.com/tools"android:layout_width="match_parent"android:layout_height="match_parent"android:orientation="vertical"tools:context=".ReactionViewActivity"><FrameLayoutandroid:layout_width="match_parent"android:layout_height="match_parent"android:background="@color/black"android:layout_below="@+id/rlTopbar"><TextureViewandroid:id="@+id/textureView"android:layout_width="match_parent"android:layout_height="match_parent"android:layout_gravity="center" /><SurfaceViewandroid:id="@+id/surface_view"android:layout_width="110dp"android:layout_height="140dp"android:layout_gravity="right"android:layout_marginRight="@dimen/margin_20"android:layout_marginTop="@dimen/margin_20" /><ProgressBarandroid:id="@+id/progress_bar"android:layout_width="@dimen/margin_50"android:layout_height="@dimen/margin_50"android:layout_gravity="center"android:indeterminateDrawable="@drawable/custom_progress" /></FrameLayout></RelativeLayout>

Post a Comment for "How To Play Multiple Video In Different Video View In One Activity"