提交 84c45c5a authored 作者: 汪显鹏's avatar 汪显鹏

GSY 优化 多任务播放模式

上级 474815a7
...@@ -3,6 +3,10 @@ ...@@ -3,6 +3,10 @@
xmlns:tools="http://schemas.android.com/tools" xmlns:tools="http://schemas.android.com/tools"
package="com.ubains.rtspdemo"> package="com.ubains.rtspdemo">
<uses-permission android:name="android.permission.INTERNET" />
<application <application
android:allowBackup="true" android:allowBackup="true"
android:appComponentFactory="" android:appComponentFactory=""
...@@ -25,23 +29,25 @@ ...@@ -25,23 +29,25 @@
<category android:name="android.intent.category.LAUNCHER" /> <category android:name="android.intent.category.LAUNCHER" />
</intent-filter> </intent-filter>
</activity> </activity>
<!-- 列表播放-->
<activity <activity
android:name=".ListMultiVideoActivity" android:name=".ListMultiVideoActivity"
android:configChanges="orientation|keyboardHidden|screenSize" android:configChanges="orientation|keyboardHidden|screenSize"
android:screenOrientation="landscape" android:screenOrientation="landscape"
android:theme="@style/Theme.AppCompat.NoActionBar"> android:theme="@style/Theme.AppCompat.NoActionBar">
</activity> </activity>
<!--直接播放,不增加任何控件-->
<activity <activity
android:name=".EmptyActivity" android:name=".EmptyActivity"
android:configChanges="orientation|keyboardHidden|screenSize" android:configChanges="orientation|keyboardHidden|screenSize"
android:screenOrientation="landscape" android:screenOrientation="landscape"
android:theme="@style/Theme.AppCompat.NoActionBar"></activity> android:theme="@style/Theme.AppCompat.NoActionBar"></activity>
<!--普通播放-->
<activity <activity
android:name=".MainActivity" android:name=".MainActivity"
android:configChanges="orientation|keyboardHidden|screenSize" android:configChanges="orientation|keyboardHidden|screenSize"
...@@ -49,6 +55,7 @@ ...@@ -49,6 +55,7 @@
android:theme="@style/Theme.AppCompat.NoActionBar"></activity> android:theme="@style/Theme.AppCompat.NoActionBar"></activity>
</application> </application>
<uses-permission android:name="android.permission.INTERNET" />
</manifest> </manifest>
\ No newline at end of file
...@@ -7,6 +7,7 @@ import android.annotation.TargetApi; ...@@ -7,6 +7,7 @@ import android.annotation.TargetApi;
import android.os.Build; import android.os.Build;
import android.os.Bundle; import android.os.Bundle;
import android.os.Handler; import android.os.Handler;
import android.view.WindowManager;
import com.shuyu.gsyvideoplayer.GSYVideoManager; import com.shuyu.gsyvideoplayer.GSYVideoManager;
import com.shuyu.gsyvideoplayer.cache.CacheFactory; import com.shuyu.gsyvideoplayer.cache.CacheFactory;
...@@ -14,6 +15,7 @@ import com.shuyu.gsyvideoplayer.cache.ProxyCacheManager; ...@@ -14,6 +15,7 @@ import com.shuyu.gsyvideoplayer.cache.ProxyCacheManager;
import com.shuyu.gsyvideoplayer.model.VideoOptionModel; import com.shuyu.gsyvideoplayer.model.VideoOptionModel;
import com.shuyu.gsyvideoplayer.player.IjkPlayerManager; import com.shuyu.gsyvideoplayer.player.IjkPlayerManager;
import com.shuyu.gsyvideoplayer.player.PlayerFactory; import com.shuyu.gsyvideoplayer.player.PlayerFactory;
import com.shuyu.gsyvideoplayer.utils.GSYVideoType;
import com.shuyu.gsyvideoplayer.utils.OrientationUtils; import com.shuyu.gsyvideoplayer.utils.OrientationUtils;
import com.ubains.rtspdemo.vedio.EmptyControlVideo; import com.ubains.rtspdemo.vedio.EmptyControlVideo;
...@@ -27,8 +29,6 @@ import tv.danmaku.ijk.media.player.IjkMediaPlayer; ...@@ -27,8 +29,6 @@ import tv.danmaku.ijk.media.player.IjkMediaPlayer;
public class EmptyActivity extends AppCompatActivity { public class EmptyActivity extends AppCompatActivity {
public final static String IMG_TRANSITION = "IMG_TRANSITION"; public final static String IMG_TRANSITION = "IMG_TRANSITION";
public final static String TRANSITION = "TRANSITION"; public final static String TRANSITION = "TRANSITION";
...@@ -38,50 +38,51 @@ public class EmptyActivity extends AppCompatActivity { ...@@ -38,50 +38,51 @@ public class EmptyActivity extends AppCompatActivity {
private boolean isTransition; private boolean isTransition;
private android.transition.Transition transition; private android.transition.Transition transition;
private EmptyControlVideo videoPlayer1,videoPlayer2; private EmptyControlVideo videoPlayer1;
@Override @Override
protected void onCreate(Bundle savedInstanceState) { protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState); super.onCreate(savedInstanceState);
setContentView(R.layout.activity_empty); setContentView(R.layout.activity_empty);
//保持屏幕常亮
getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
videoPlayer1 = findViewById(R.id.detail_player1); videoPlayer1 = findViewById(R.id.detail_player1);
videoPlayer2 = findViewById(R.id.detail_player2);
isTransition = getIntent().getBooleanExtra(TRANSITION, false); isTransition = getIntent().getBooleanExtra(TRANSITION, false);
init(); init();
} }
private void init() { private void init() {
//EXOPlayer内核,支持格式更多
PlayerFactory.setPlayManager(Exo2PlayerManager.class); PlayerFactory.setPlayManager(Exo2PlayerManager.class);
//系统内核模式 //系统内核模式
//PlayerFactory.setPlayManager(SystemPlayerManager.class); //PlayerFactory.setPlayManager(SystemPlayerManager.class);
//ijk内核,默认模式 ijk 模式才支持RTSP 播放 //ijk内核,默认模式 ijk 模式才支持RTSP 播放
PlayerFactory.setPlayManager(IjkPlayerManager.class); PlayerFactory.setPlayManager(IjkPlayerManager.class);
//exo缓存模式,支持m3u8,只支持exo //exo缓存模式,支持m3u8,只支持exo
// CacheFactory.setCacheManager(ExoPlayerCacheManager.class); // CacheFactory.setCacheManager(ExoPlayerCacheManager.class);
//代理缓存模式,支持所有模式,不支持m3u8等,默认 //代理缓存模式,支持所有模式,不支持m3u8等,默认
CacheFactory.setCacheManager(ProxyCacheManager.class); CacheFactory.setCacheManager(ProxyCacheManager.class);
List<VideoOptionModel> list = new ArrayList<>(); GSYVideoType.setShowType(GSYVideoType.SCREEN_MATCH_FULL);
GSYVideoType.setRenderType(GSYVideoType.TEXTURE);
List<VideoOptionModel> list = new ArrayList<>();
//设置RTSP 连接方式 //设置RTSP 连接方式
VideoOptionModel videoOptionModel = new VideoOptionModel(IjkMediaPlayer.OPT_CATEGORY_FORMAT, "rtsp_transport", "tcp"); VideoOptionModel videoOptionModel = new VideoOptionModel(IjkMediaPlayer.OPT_CATEGORY_FORMAT, "rtsp_transport", "tcp");
list.add(videoOptionModel); list.add(videoOptionModel);
videoOptionModel = new VideoOptionModel(IjkMediaPlayer.OPT_CATEGORY_FORMAT, "rtsp_flags", "prefer_tcp"); videoOptionModel = new VideoOptionModel(IjkMediaPlayer.OPT_CATEGORY_FORMAT, "rtsp_flags", "prefer_tcp");
list.add(videoOptionModel); list.add(videoOptionModel);
//硬解码:1、打开,0、关闭 //硬解码:1、打开,0、关闭
videoOptionModel = new VideoOptionModel(IjkMediaPlayer.OPT_CATEGORY_PLAYER, "mediacodec", 1); videoOptionModel = new VideoOptionModel(IjkMediaPlayer.OPT_CATEGORY_PLAYER, "mediacodec", 1);
list.add(videoOptionModel); list.add(videoOptionModel);
//软解码:1、打开,0、关闭 //软解码:1、打开,0、关闭
videoOptionModel = new VideoOptionModel(IjkMediaPlayer.OPT_CATEGORY_PLAYER, "videotoolbox", 1); videoOptionModel = new VideoOptionModel(IjkMediaPlayer.OPT_CATEGORY_PLAYER, "videotoolbox", 1);
list.add(videoOptionModel); list.add(videoOptionModel);
//根据媒体类型来配置 //根据媒体类型来配置
videoOptionModel = new VideoOptionModel(IjkMediaPlayer.OPT_CATEGORY_FORMAT, "allowed_media_types", "video"); videoOptionModel = new VideoOptionModel(IjkMediaPlayer.OPT_CATEGORY_FORMAT, "allowed_media_types", "video");
list.add(videoOptionModel); list.add(videoOptionModel);
videoOptionModel = new VideoOptionModel(IjkMediaPlayer.OPT_CATEGORY_FORMAT, "timeout", 20000); videoOptionModel = new VideoOptionModel(IjkMediaPlayer.OPT_CATEGORY_FORMAT, "timeout", 20000);
list.add(videoOptionModel); list.add(videoOptionModel);
videoOptionModel = new VideoOptionModel(IjkMediaPlayer.OPT_CATEGORY_FORMAT, "buffer_size", 1316); videoOptionModel = new VideoOptionModel(IjkMediaPlayer.OPT_CATEGORY_FORMAT, "buffer_size", 1316);
...@@ -90,24 +91,25 @@ public class EmptyActivity extends AppCompatActivity { ...@@ -90,24 +91,25 @@ public class EmptyActivity extends AppCompatActivity {
list.add(videoOptionModel); list.add(videoOptionModel);
videoOptionModel = new VideoOptionModel(IjkMediaPlayer.OPT_CATEGORY_FORMAT, "analyzemaxduration", 100); videoOptionModel = new VideoOptionModel(IjkMediaPlayer.OPT_CATEGORY_FORMAT, "analyzemaxduration", 100);
list.add(videoOptionModel); list.add(videoOptionModel);
videoOptionModel = new VideoOptionModel(IjkMediaPlayer.OPT_CATEGORY_FORMAT, "probesize", 10240); videoOptionModel = new VideoOptionModel(IjkMediaPlayer.OPT_CATEGORY_FORMAT, "probesize", 4096);
list.add(videoOptionModel);
videoOptionModel = new VideoOptionModel(IjkMediaPlayer.OPT_CATEGORY_FORMAT, "analyzeduration", "2000000");
list.add(videoOptionModel); list.add(videoOptionModel);
videoOptionModel = new VideoOptionModel(IjkMediaPlayer.OPT_CATEGORY_FORMAT, "flush_packets", 1); videoOptionModel = new VideoOptionModel(IjkMediaPlayer.OPT_CATEGORY_FORMAT, "flush_packets", 1);
list.add(videoOptionModel); list.add(videoOptionModel);
// 关闭播放器缓冲,这个必须关闭,否则会出现播放一段时间后,一直卡主,控制台打印 FFP_MSG_BUFFERING_START // 关闭播放器缓冲,这个必须关闭,否则会出现播放一段时间后,一直卡主,控制台打印 FFP_MSG_BUFFERING_START
videoOptionModel = new VideoOptionModel(IjkMediaPlayer.OPT_CATEGORY_PLAYER, "packet-buffering", 0); videoOptionModel = new VideoOptionModel(IjkMediaPlayer.OPT_CATEGORY_PLAYER, "packet-buffering", 0);
list.add(videoOptionModel); list.add(videoOptionModel);
GSYVideoManager.instance().setOptionModelList(list); GSYVideoManager.instance().setOptionModelList(list);
String url = "rtsp://admin:huawei@123@192.168.11.20/LiveMedia/ch1/Media1"; String url = "rtsp://admin:huawei@123@192.168.11.20/LiveMedia/ch1/Media1";
// String url = "rtsp://192.168.1.234:8556/channel=0";
videoPlayer1.setUp(url, true, ""); videoPlayer1.setUp(url, true, "");
// videoPlayer2.setUp(ur2, true, ""); videoPlayer1.startPlayLogic();
//过渡动画 //过渡动画
initTransition(); //initTransition();
} }
...@@ -125,7 +127,6 @@ public class EmptyActivity extends AppCompatActivity { ...@@ -125,7 +127,6 @@ public class EmptyActivity extends AppCompatActivity {
@Override @Override
protected void onDestroy() { protected void onDestroy() {
super.onDestroy(); super.onDestroy();
videoPlayer2.release();
videoPlayer1.release(); videoPlayer1.release();
if (orientationUtils != null) if (orientationUtils != null)
orientationUtils.releaseListener(); orientationUtils.releaseListener();
...@@ -135,7 +136,6 @@ public class EmptyActivity extends AppCompatActivity { ...@@ -135,7 +136,6 @@ public class EmptyActivity extends AppCompatActivity {
public void onBackPressed() { public void onBackPressed() {
//释放所有 //释放所有
videoPlayer1.setVideoAllCallBack(null); videoPlayer1.setVideoAllCallBack(null);
videoPlayer2.setVideoAllCallBack(null);
GSYVideoManager.releaseAllVideos(); GSYVideoManager.releaseAllVideos();
if (isTransition && Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { if (isTransition && Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
super.onBackPressed(); super.onBackPressed();
...@@ -155,12 +155,12 @@ public class EmptyActivity extends AppCompatActivity { ...@@ -155,12 +155,12 @@ public class EmptyActivity extends AppCompatActivity {
if (isTransition && Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { if (isTransition && Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
postponeEnterTransition(); postponeEnterTransition();
ViewCompat.setTransitionName(videoPlayer1, IMG_TRANSITION); ViewCompat.setTransitionName(videoPlayer1, IMG_TRANSITION);
ViewCompat.setTransitionName(videoPlayer2, IMG_TRANSITION);
// addTransitionListener(); // addTransitionListener();
startPostponedEnterTransition(); startPostponedEnterTransition();
} else { } else {
videoPlayer1.startPlayLogic(); videoPlayer1.startPlayLogic();
videoPlayer2.startPlayLogic();
} }
} }
......
...@@ -16,6 +16,7 @@ import com.shuyu.gsyvideoplayer.listener.GSYSampleCallBack; ...@@ -16,6 +16,7 @@ import com.shuyu.gsyvideoplayer.listener.GSYSampleCallBack;
import com.shuyu.gsyvideoplayer.model.VideoOptionModel; import com.shuyu.gsyvideoplayer.model.VideoOptionModel;
import com.shuyu.gsyvideoplayer.player.IjkPlayerManager; import com.shuyu.gsyvideoplayer.player.IjkPlayerManager;
import com.shuyu.gsyvideoplayer.player.PlayerFactory; import com.shuyu.gsyvideoplayer.player.PlayerFactory;
import com.shuyu.gsyvideoplayer.utils.GSYVideoType;
import com.ubains.rtspdemo.vedio.MultiSampleVideo; import com.ubains.rtspdemo.vedio.MultiSampleVideo;
import com.ubains.rtspdemo.vedio.manager.CustomManager; import com.ubains.rtspdemo.vedio.manager.CustomManager;
...@@ -54,6 +55,7 @@ public class MutliActivity extends AppCompatActivity { ...@@ -54,6 +55,7 @@ public class MutliActivity extends AppCompatActivity {
} }
private void init() { private void init() {
//EXOPlayer内核,支持格式更多
PlayerFactory.setPlayManager(Exo2PlayerManager.class); PlayerFactory.setPlayManager(Exo2PlayerManager.class);
//系统内核模式 //系统内核模式
//PlayerFactory.setPlayManager(SystemPlayerManager.class); //PlayerFactory.setPlayManager(SystemPlayerManager.class);
...@@ -61,12 +63,14 @@ public class MutliActivity extends AppCompatActivity { ...@@ -61,12 +63,14 @@ public class MutliActivity extends AppCompatActivity {
PlayerFactory.setPlayManager(IjkPlayerManager.class); PlayerFactory.setPlayManager(IjkPlayerManager.class);
//exo缓存模式,支持m3u8,只支持exo //exo缓存模式,支持m3u8,只支持exo
CacheFactory.setCacheManager(ExoPlayerCacheManager.class); // CacheFactory.setCacheManager(ExoPlayerCacheManager.class);
//代理缓存模式,支持所有模式,不支持m3u8等,默认 //代理缓存模式,支持所有模式,不支持m3u8等,默认
CacheFactory.setCacheManager(ProxyCacheManager.class); CacheFactory.setCacheManager(ProxyCacheManager.class);
GSYVideoType.setShowType(GSYVideoType.SCREEN_MATCH_FULL);
GSYVideoType.setRenderType(GSYVideoType.TEXTURE);
List<VideoOptionModel> list = new ArrayList<>();
List<VideoOptionModel> list = new ArrayList<>();
//设置RTSP 连接方式 //设置RTSP 连接方式
VideoOptionModel videoOptionModel = new VideoOptionModel(IjkMediaPlayer.OPT_CATEGORY_FORMAT, "rtsp_transport", "tcp"); VideoOptionModel videoOptionModel = new VideoOptionModel(IjkMediaPlayer.OPT_CATEGORY_FORMAT, "rtsp_transport", "tcp");
list.add(videoOptionModel); list.add(videoOptionModel);
...@@ -76,31 +80,34 @@ public class MutliActivity extends AppCompatActivity { ...@@ -76,31 +80,34 @@ public class MutliActivity extends AppCompatActivity {
//硬解码:1、打开,0、关闭 //硬解码:1、打开,0、关闭
videoOptionModel = new VideoOptionModel(IjkMediaPlayer.OPT_CATEGORY_PLAYER, "mediacodec", 1); videoOptionModel = new VideoOptionModel(IjkMediaPlayer.OPT_CATEGORY_PLAYER, "mediacodec", 1);
list.add(videoOptionModel); list.add(videoOptionModel);
//软解码:1、打开,0、关闭 //软解码:1、打开,0、关闭
videoOptionModel = new VideoOptionModel(IjkMediaPlayer.OPT_CATEGORY_PLAYER, "videotoolbox", 1); videoOptionModel = new VideoOptionModel(IjkMediaPlayer.OPT_CATEGORY_PLAYER, "videotoolbox", 1);
list.add(videoOptionModel); list.add(videoOptionModel);
//根据媒体类型来配置 //根据媒体类型来配置
videoOptionModel = new VideoOptionModel(IjkMediaPlayer.OPT_CATEGORY_FORMAT, "allowed_media_types", "video"); videoOptionModel = new VideoOptionModel(IjkMediaPlayer.OPT_CATEGORY_FORMAT, "allowed_media_types", "video");
list.add(videoOptionModel); list.add(videoOptionModel);
videoOptionModel = new VideoOptionModel(IjkMediaPlayer.OPT_CATEGORY_FORMAT, "timeout", 20000); videoOptionModel = new VideoOptionModel(IjkMediaPlayer.OPT_CATEGORY_FORMAT, "timeout", 20000);
list.add(videoOptionModel); list.add(videoOptionModel);
videoOptionModel = new VideoOptionModel(IjkMediaPlayer.OPT_CATEGORY_FORMAT, "buffer_size", 1024); videoOptionModel = new VideoOptionModel(IjkMediaPlayer.OPT_CATEGORY_FORMAT, "buffer_size", 1316);
list.add(videoOptionModel); list.add(videoOptionModel);
videoOptionModel = new VideoOptionModel(IjkMediaPlayer.OPT_CATEGORY_FORMAT, "infbuf", 1); // 无限读 videoOptionModel = new VideoOptionModel(IjkMediaPlayer.OPT_CATEGORY_FORMAT, "infbuf", 1); // 无限读
list.add(videoOptionModel); list.add(videoOptionModel);
videoOptionModel = new VideoOptionModel(IjkMediaPlayer.OPT_CATEGORY_FORMAT, "analyzemaxduration", 100); videoOptionModel = new VideoOptionModel(IjkMediaPlayer.OPT_CATEGORY_FORMAT, "analyzemaxduration", 100);
list.add(videoOptionModel); list.add(videoOptionModel);
videoOptionModel = new VideoOptionModel(IjkMediaPlayer.OPT_CATEGORY_FORMAT, "probesize", 10240); videoOptionModel = new VideoOptionModel(IjkMediaPlayer.OPT_CATEGORY_FORMAT, "probesize", 4096);
list.add(videoOptionModel); list.add(videoOptionModel);
videoOptionModel = new VideoOptionModel(IjkMediaPlayer.OPT_CATEGORY_FORMAT, "analyzeduration", "2000000");
list.add(videoOptionModel);
videoOptionModel = new VideoOptionModel(IjkMediaPlayer.OPT_CATEGORY_FORMAT, "flush_packets", 1); videoOptionModel = new VideoOptionModel(IjkMediaPlayer.OPT_CATEGORY_FORMAT, "flush_packets", 1);
list.add(videoOptionModel); list.add(videoOptionModel);
// 关闭播放器缓冲,这个必须关闭,否则会出现播放一段时间后,一直卡主,控制台打印 FFP_MSG_BUFFERING_START // 关闭播放器缓冲,这个必须关闭,否则会出现播放一段时间后,一直卡主,控制台打印 FFP_MSG_BUFFERING_START
videoOptionModel = new VideoOptionModel(IjkMediaPlayer.OPT_CATEGORY_PLAYER, "packet-buffering", 0); videoOptionModel = new VideoOptionModel(IjkMediaPlayer.OPT_CATEGORY_PLAYER, "packet-buffering", 0);
list.add(videoOptionModel); list.add(videoOptionModel);
videoOptionModel = new VideoOptionModel(IjkMediaPlayer.OPT_CATEGORY_PLAYER, "reconnect", 5);
list.add(videoOptionModel);
videoOptionModel = new VideoOptionModel(IjkMediaPlayer.OPT_CATEGORY_PLAYER, "framedrop", 30);
list.add(videoOptionModel);
GSYVideoManager.instance().setOptionModelList(list); GSYVideoManager.instance().setOptionModelList(list);
// String url = "rtsp://admin:huawei@123@192.168.11.16/LiveMedia/ch1/Media1"; // String url = "rtsp://admin:huawei@123@192.168.11.16/LiveMedia/ch1/Media1";
...@@ -146,7 +153,8 @@ public class MutliActivity extends AppCompatActivity { ...@@ -146,7 +153,8 @@ public class MutliActivity extends AppCompatActivity {
// String url3 = "rtsp://admin:huawei@123@192.168.11.19/LiveMedia/ch1/Media1"; // String url3 = "rtsp://admin:huawei@123@192.168.11.19/LiveMedia/ch1/Media1";
// String url3 = "rtsp://admin:huawei@123@192.168.11.19/LiveMedia/ch1/Media2"; // String url3 = "rtsp://admin:huawei@123@192.168.11.19/LiveMedia/ch1/Media2";
String url3 = "rtsp://admin:HZ0000001988@192.168.10.21:554/h264/ch1/main/av_stream"; // String url3 = "rtsp://admin:HZ0000001988@192.168.10.21:554/h264/ch1/main/av_stream";
String url3 = "rtsp://admin:HZ0000001988@192.168.10.28:554/h264/ch1/main/av_stream";
videoPlayer3.setPlayTag("videoPlayer3"); videoPlayer3.setPlayTag("videoPlayer3");
videoPlayer3.setPlayPosition(3); videoPlayer3.setPlayPosition(3);
...@@ -167,6 +175,7 @@ public class MutliActivity extends AppCompatActivity { ...@@ -167,6 +175,7 @@ public class MutliActivity extends AppCompatActivity {
// String url4 = "rtsp://admin:huawei@123@192.168.11.19/LiveMedia/ch1/Media1"; // String url4 = "rtsp://admin:huawei@123@192.168.11.19/LiveMedia/ch1/Media1";
// String url4 = "rtsp://admin:huawei@123@192.168.11.23/LiveMedia/ch1/Media2"; // String url4 = "rtsp://admin:huawei@123@192.168.11.23/LiveMedia/ch1/Media2";
String url4 = "rtsp://admin:huawei@123@192.168.11.23/LiveMedia/ch1/Media3"; String url4 = "rtsp://admin:huawei@123@192.168.11.23/LiveMedia/ch1/Media3";
// String url4 = "rtsp://192.168.1.234:8556/channel=0";
videoPlayer4.setPlayTag("videoPlayer4"); videoPlayer4.setPlayTag("videoPlayer4");
videoPlayer4.setPlayPosition(4); videoPlayer4.setPlayPosition(4);
...@@ -174,6 +183,7 @@ public class MutliActivity extends AppCompatActivity { ...@@ -174,6 +183,7 @@ public class MutliActivity extends AppCompatActivity {
if (!isPlaying4) { if (!isPlaying4) {
videoPlayer4.setUpLazy(url4, false, null, null, ""); videoPlayer4.setUpLazy(url4, false, null, null, "");
} }
videoPlayer4.setIsTouchWiget(false);
// videoPlayer4.setRotateViewAuto(true); // videoPlayer4.setRotateViewAuto(true);
// videoPlayer4.setLockLand(true); // videoPlayer4.setLockLand(true);
......
...@@ -6,21 +6,10 @@ ...@@ -6,21 +6,10 @@
android:layout_height="match_parent" android:layout_height="match_parent"
tools:context=".MainActivity"> tools:context=".MainActivity">
<LinearLayout <com.ubains.rtspdemo.vedio.EmptyControlVideo
android:orientation="horizontal" android:id="@+id/detail_player1"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent"> android:layout_height="match_parent"
<com.ubains.rtspdemo.vedio.EmptyControlVideo android:layout_weight="1" />
android:layout_weight="1"
android:id="@+id/detail_player1"
android:layout_width="match_parent"
android:layout_height="match_parent" />
<com.ubains.rtspdemo.vedio.EmptyControlVideo
android:layout_weight="1"
android:id="@+id/detail_player2"
android:layout_width="match_parent"
android:layout_height="match_parent" />
</LinearLayout>
</RelativeLayout> </RelativeLayout>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<resources>
<item name="custom_full_id" type="id" />
<item name="custom_small_id" type="id" />
</resources>
\ No newline at end of file
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论