diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 8b02b871b0066e1535084e1b7ee03efca14831e1..c423d5981dbdbc1e2df655b68d618b3fb1c39dcf 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -169,11 +169,24 @@
android:theme="@style/Theme.AppCompat.Translucent"
android:configChanges="orientation|keyboardHidden|screenSize"
android:screenOrientation="portrait" />
+
+
+
+
+
diff --git a/app/src/main/java/com/example/gsyvideoplayer/MainActivity.java b/app/src/main/java/com/example/gsyvideoplayer/MainActivity.java
index f83d7848ffeccbd5e7249d7187c4a04e61b76d48..d53a0061b3ad2766bb6d8179ca9381214c219a69 100644
--- a/app/src/main/java/com/example/gsyvideoplayer/MainActivity.java
+++ b/app/src/main/java/com/example/gsyvideoplayer/MainActivity.java
@@ -55,7 +55,7 @@ public class MainActivity extends AppCompatActivity {
@OnClick({R.id.open_btn, R.id.list_btn, R.id.list_btn_2, R.id.list_detail, R.id.clear_cache, R.id.recycler, R.id.recycler_2, R.id.list_detail_list, R.id.web_detail, R.id.danmaku_video, R.id.fragment_video,
R.id.more_type, R.id.input_type, R.id.open_btn_empty, R.id.open_control, R.id.open_filter, R.id.open_btn_pick, R.id.open_btn_auto, R.id.open_scroll, R.id.open_window, R.id.open_btn_ad,
- R.id.open_btn_multi, R.id.open_btn_ad2, R.id.open_list_ad, R.id.open_custom_exo, R.id.open_simple})
+ R.id.open_btn_multi, R.id.open_btn_ad2, R.id.open_list_ad, R.id.open_custom_exo, R.id.open_simple, R.id.open_switch})
public void onClick(View view) {
switch (view.getId()) {
case R.id.open_simple:
@@ -154,6 +154,9 @@ public class MainActivity extends AppCompatActivity {
//多个同时播放
JumpUtils.goToDetailExoListPlayer(this);
break;
+ case R.id.open_switch:
+ JumpUtils.goToSwitch(this);
+ break;
case R.id.clear_cache:
//清理缓存
GSYVideoManager.instance().clearAllDefaultCache(MainActivity.this);
diff --git a/app/src/main/java/com/example/gsyvideoplayer/simple/SimpleListVideoActivityMode1.java b/app/src/main/java/com/example/gsyvideoplayer/simple/SimpleListVideoActivityMode1.java
index a8c743a24a173b71fa1120d463d2c68a7c6bf4ad..ca6d436a707149b40d48e53a993e72bd01a710f6 100644
--- a/app/src/main/java/com/example/gsyvideoplayer/simple/SimpleListVideoActivityMode1.java
+++ b/app/src/main/java/com/example/gsyvideoplayer/simple/SimpleListVideoActivityMode1.java
@@ -6,7 +6,7 @@ import android.widget.AbsListView;
import android.widget.ListView;
import com.example.gsyvideoplayer.R;
-import com.example.gsyvideoplayer.simple.adapter.SimpleListVideoModelAdapter;
+import com.example.gsyvideoplayer.simple.adapter.SimpleListVideoModeAdapter;
import com.shuyu.gsyvideoplayer.GSYVideoManager;
/**
@@ -16,7 +16,7 @@ public class SimpleListVideoActivityMode1 extends AppCompatActivity {
ListView videoList;
- SimpleListVideoModelAdapter listNormalAdapter;
+ SimpleListVideoModeAdapter listNormalAdapter;
@Override
protected void onCreate(Bundle savedInstanceState) {
@@ -25,7 +25,7 @@ public class SimpleListVideoActivityMode1 extends AppCompatActivity {
videoList = (ListView)findViewById(R.id.video_list);
- listNormalAdapter = new SimpleListVideoModelAdapter(this);
+ listNormalAdapter = new SimpleListVideoModeAdapter(this);
videoList.setAdapter(listNormalAdapter);
videoList.setOnScrollListener(new AbsListView.OnScrollListener() {
@@ -41,7 +41,7 @@ public class SimpleListVideoActivityMode1 extends AppCompatActivity {
//当前播放的位置
int position = GSYVideoManager.instance().getPlayPosition();
//对应的播放列表TAG
- if (GSYVideoManager.instance().getPlayTag().equals(SimpleListVideoModelAdapter.TAG)
+ if (GSYVideoManager.instance().getPlayTag().equals(SimpleListVideoModeAdapter.TAG)
&& (position < firstVisibleItem || position > lastVisibleItem)) {
if(GSYVideoManager.isFullState(SimpleListVideoActivityMode1.this)) {
return;
diff --git a/app/src/main/java/com/example/gsyvideoplayer/simple/SimpleListVideoActivityMode2.java b/app/src/main/java/com/example/gsyvideoplayer/simple/SimpleListVideoActivityMode2.java
index 931d5289622be8aa4ccc7846697cae212095add7..6529d59433ef7f65f76f7168be98faf53eaa2cbf 100644
--- a/app/src/main/java/com/example/gsyvideoplayer/simple/SimpleListVideoActivityMode2.java
+++ b/app/src/main/java/com/example/gsyvideoplayer/simple/SimpleListVideoActivityMode2.java
@@ -8,7 +8,7 @@ import android.widget.ListView;
import android.widget.RelativeLayout;
import com.example.gsyvideoplayer.R;
-import com.example.gsyvideoplayer.simple.adapter.SimpleListVideoModel2Adapter;
+import com.example.gsyvideoplayer.simple.adapter.SimpleListVideoMode2Adapter;
import com.shuyu.gsyvideoplayer.GSYVideoManager;
import com.shuyu.gsyvideoplayer.listener.GSYSampleCallBack;
import com.shuyu.gsyvideoplayer.utils.CommonUtil;
@@ -26,7 +26,7 @@ public class SimpleListVideoActivityMode2 extends AppCompatActivity {
GSYVideoHelper smallVideoHelper;
- SimpleListVideoModel2Adapter listVideoAdapter;
+ SimpleListVideoMode2Adapter listVideoAdapter;
GSYVideoHelper.GSYVideoHelperBuilder gsySmallVideoHelperBuilder;
@@ -59,7 +59,7 @@ public class SimpleListVideoActivityMode2 extends AppCompatActivity {
public void onQuitSmallWidget(String url, Object... objects) {
super.onQuitSmallWidget(url, objects);
//大于0说明有播放,//对应的播放列表TAG
- if (smallVideoHelper.getPlayPosition() >= 0 && smallVideoHelper.getPlayTAG().equals(SimpleListVideoModel2Adapter.TAG)) {
+ if (smallVideoHelper.getPlayPosition() >= 0 && smallVideoHelper.getPlayTAG().equals(SimpleListVideoMode2Adapter.TAG)) {
//当前播放的位置
int position = smallVideoHelper.getPlayPosition();
//不可视的是时候
@@ -75,7 +75,7 @@ public class SimpleListVideoActivityMode2 extends AppCompatActivity {
smallVideoHelper.setGsyVideoOptionBuilder(gsySmallVideoHelperBuilder);
- listVideoAdapter = new SimpleListVideoModel2Adapter(this, smallVideoHelper, gsySmallVideoHelperBuilder);
+ listVideoAdapter = new SimpleListVideoMode2Adapter(this, smallVideoHelper, gsySmallVideoHelperBuilder);
listVideoAdapter.setRootView(activityListVideo);
videoList.setAdapter(listVideoAdapter);
@@ -89,7 +89,7 @@ public class SimpleListVideoActivityMode2 extends AppCompatActivity {
SimpleListVideoActivityMode2.this.firstVisibleItem = firstVisibleItem;
lastVisibleItem = firstVisibleItem + visibleItemCount;
//大于0说明有播放,//对应的播放列表TAG
- if (smallVideoHelper.getPlayPosition() >= 0 && smallVideoHelper.getPlayTAG().equals(SimpleListVideoModel2Adapter.TAG)) {
+ if (smallVideoHelper.getPlayPosition() >= 0 && smallVideoHelper.getPlayTAG().equals(SimpleListVideoMode2Adapter.TAG)) {
//当前播放的位置
int position = smallVideoHelper.getPlayPosition();
//不可视的是时候
diff --git a/app/src/main/java/com/example/gsyvideoplayer/simple/adapter/SimpleListVideoModel2Adapter.java b/app/src/main/java/com/example/gsyvideoplayer/simple/adapter/SimpleListVideoMode2Adapter.java
similarity index 92%
rename from app/src/main/java/com/example/gsyvideoplayer/simple/adapter/SimpleListVideoModel2Adapter.java
rename to app/src/main/java/com/example/gsyvideoplayer/simple/adapter/SimpleListVideoMode2Adapter.java
index d28a6a2758ccc457837bd1c3bcd8b5ddafcad7a5..3184d5bf0f9097c9e95b1c69c868e584d21e67d6 100644
--- a/app/src/main/java/com/example/gsyvideoplayer/simple/adapter/SimpleListVideoModel2Adapter.java
+++ b/app/src/main/java/com/example/gsyvideoplayer/simple/adapter/SimpleListVideoMode2Adapter.java
@@ -16,7 +16,7 @@ import com.shuyu.gsyvideoplayer.utils.OrientationUtils;
import java.util.ArrayList;
import java.util.List;
-public class SimpleListVideoModel2Adapter extends BaseAdapter {
+public class SimpleListVideoMode2Adapter extends BaseAdapter {
public final static String TAG = "TT22";
@@ -34,7 +34,7 @@ public class SimpleListVideoModel2Adapter extends BaseAdapter {
private GSYVideoHelper.GSYVideoHelperBuilder gsySmallVideoHelperBuilder;
- public SimpleListVideoModel2Adapter(Context context, GSYVideoHelper smallVideoHelper, GSYVideoHelper.GSYVideoHelperBuilder gsySmallVideoHelperBuilder) {
+ public SimpleListVideoMode2Adapter(Context context, GSYVideoHelper smallVideoHelper, GSYVideoHelper.GSYVideoHelperBuilder gsySmallVideoHelperBuilder) {
super();
this.context = context;
this.smallVideoHelper = smallVideoHelper;
@@ -67,7 +67,7 @@ public class SimpleListVideoModel2Adapter extends BaseAdapter {
final ViewHolder holder;
if (convertView == null) {
holder = new ViewHolder();
- convertView = inflater.inflate(R.layout.list_video_simple_model2, null);
+ convertView = inflater.inflate(R.layout.list_video_simple_mode2, null);
holder.videoContainer = (FrameLayout) convertView.findViewById(R.id.list_item_container);
holder.playerBtn = (ImageView) convertView.findViewById(R.id.list_item_btn);
holder.imageView = new ImageView(context);
diff --git a/app/src/main/java/com/example/gsyvideoplayer/simple/adapter/SimpleListVideoModelAdapter.java b/app/src/main/java/com/example/gsyvideoplayer/simple/adapter/SimpleListVideoModeAdapter.java
similarity index 96%
rename from app/src/main/java/com/example/gsyvideoplayer/simple/adapter/SimpleListVideoModelAdapter.java
rename to app/src/main/java/com/example/gsyvideoplayer/simple/adapter/SimpleListVideoModeAdapter.java
index d21befb81d3518f772e6e086fc962822d884e525..885e498f2bd48c80535b1c0e23cafdc9e20e53b6 100644
--- a/app/src/main/java/com/example/gsyvideoplayer/simple/adapter/SimpleListVideoModelAdapter.java
+++ b/app/src/main/java/com/example/gsyvideoplayer/simple/adapter/SimpleListVideoModeAdapter.java
@@ -15,7 +15,7 @@ import com.shuyu.gsyvideoplayer.video.StandardGSYVideoPlayer;
import java.util.ArrayList;
import java.util.List;
-public class SimpleListVideoModelAdapter extends BaseAdapter {
+public class SimpleListVideoModeAdapter extends BaseAdapter {
public static final String TAG = "ListNormalAdapter22";
@@ -31,7 +31,7 @@ public class SimpleListVideoModelAdapter extends BaseAdapter {
protected boolean isFull;
- public SimpleListVideoModelAdapter(Context context) {
+ public SimpleListVideoModeAdapter(Context context) {
super();
this.context = context;
inflater = LayoutInflater.from(context);
@@ -61,7 +61,7 @@ public class SimpleListVideoModelAdapter extends BaseAdapter {
final ViewHolder holder;
if (convertView == null) {
holder = new ViewHolder();
- convertView = inflater.inflate(R.layout.list_video_simple_model1, null);
+ convertView = inflater.inflate(R.layout.list_video_simple_mode1, null);
holder.gsyVideoPlayer = (SampleCoverVideo) convertView.findViewById(R.id.video_item_player);
convertView.setTag(holder);
} else {
diff --git a/app/src/main/java/com/example/gsyvideoplayer/switchplay/SwitchDetailActivity.java b/app/src/main/java/com/example/gsyvideoplayer/switchplay/SwitchDetailActivity.java
new file mode 100644
index 0000000000000000000000000000000000000000..0fa5d8738c7a5dd8775e64cd809189de1b557ebc
--- /dev/null
+++ b/app/src/main/java/com/example/gsyvideoplayer/switchplay/SwitchDetailActivity.java
@@ -0,0 +1,133 @@
+package com.example.gsyvideoplayer.switchplay;
+
+import android.content.res.Configuration;
+import android.os.Bundle;
+import android.support.v7.app.AppCompatActivity;
+import android.view.View;
+import android.widget.ImageView;
+
+import com.example.gsyvideoplayer.R;
+import com.shuyu.gsyvideoplayer.GSYVideoManager;
+import com.shuyu.gsyvideoplayer.builder.GSYVideoOptionBuilder;
+import com.shuyu.gsyvideoplayer.listener.GSYSampleCallBack;
+import com.shuyu.gsyvideoplayer.listener.LockClickListener;
+import com.shuyu.gsyvideoplayer.utils.OrientationUtils;
+import com.shuyu.gsyvideoplayer.video.StandardGSYVideoPlayer;
+
+/**
+ * 切换详情
+ */
+public class SwitchDetailActivity extends AppCompatActivity {
+
+ public static final String URL = "url";
+
+ SwitchVideo detailPlayer;
+
+ private boolean isPlay = true;
+ private boolean isPause;
+
+ private OrientationUtils orientationUtils;
+
+ @Override
+ protected void onCreate(Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+ setContentView(R.layout.switch_activity_detail_player);
+
+ detailPlayer = (SwitchVideo) findViewById(R.id.detail_player);
+
+
+ //增加title
+ detailPlayer.getTitleTextView().setVisibility(View.GONE);
+ detailPlayer.getBackButton().setVisibility(View.GONE);
+
+ //外部辅助的旋转,帮助全屏
+ orientationUtils = new OrientationUtils(this, detailPlayer);
+ //初始化不打开外部的旋转
+ orientationUtils.setEnable(false);
+
+ SwitchUtil.optionPlayer(detailPlayer, getIntent().getStringExtra(URL), true, "这是title");
+
+ SwitchUtil.clonePlayState(detailPlayer);
+
+ detailPlayer.setIsTouchWiget(true);
+
+ detailPlayer.setVideoAllCallBack(new GSYSampleCallBack() {
+ @Override
+ public void onPrepared(String url, Object... objects) {
+ super.onPrepared(url, objects);
+ //开始播放了才能旋转和全屏
+ orientationUtils.setEnable(true);
+ }
+
+ @Override
+ public void onQuitFullscreen(String url, Object... objects) {
+ super.onQuitFullscreen(url, objects);
+ if (orientationUtils != null) {
+ orientationUtils.backToProtVideo();
+ }
+ }
+ });
+
+ detailPlayer.getFullscreenButton().setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ //直接横屏
+ orientationUtils.resolveByClick();
+ //第一个true是否需要隐藏actionbar,第二个true是否需要隐藏statusbar
+ detailPlayer.startWindowFullscreen(SwitchDetailActivity.this, true, true);
+ }
+ });
+
+ detailPlayer.setSurfaceToPlay();
+ }
+
+ @Override
+ public void onBackPressed() {
+ if (orientationUtils != null) {
+ orientationUtils.backToProtVideo();
+ }
+ if (GSYVideoManager.backFromWindowFull(this)) {
+ return;
+ }
+ super.onBackPressed();
+ }
+
+
+ @Override
+ protected void onPause() {
+ detailPlayer.getCurrentPlayer().onVideoPause();
+ super.onPause();
+ isPause = true;
+ }
+
+ @Override
+ protected void onResume() {
+ detailPlayer.getCurrentPlayer().onVideoResume(false);
+ super.onResume();
+ isPause = false;
+ }
+
+ @Override
+ protected void onDestroy() {
+ super.onDestroy();
+ detailPlayer.getGSYVideoManager().setListener(detailPlayer.getGSYVideoManager().lastListener());
+ detailPlayer.getGSYVideoManager().setLastListener(null);
+ GSYVideoManager.releaseAllVideos();
+ if (orientationUtils != null)
+ orientationUtils.releaseListener();
+
+ SwitchUtil.release();
+ }
+
+
+
+ @Override
+ public void onConfigurationChanged(Configuration newConfig) {
+ super.onConfigurationChanged(newConfig);
+ //如果旋转了就全屏
+ if (isPlay && !isPause) {
+ detailPlayer.onConfigurationChanged(this, newConfig, orientationUtils, true, true);
+ }
+ }
+
+}
diff --git a/app/src/main/java/com/example/gsyvideoplayer/switchplay/SwitchListVideoActivity.java b/app/src/main/java/com/example/gsyvideoplayer/switchplay/SwitchListVideoActivity.java
new file mode 100644
index 0000000000000000000000000000000000000000..099db148cc17a78bd66845179914481a1cb509e0
--- /dev/null
+++ b/app/src/main/java/com/example/gsyvideoplayer/switchplay/SwitchListVideoActivity.java
@@ -0,0 +1,84 @@
+package com.example.gsyvideoplayer.switchplay;
+
+import android.os.Bundle;
+import android.support.v7.app.AppCompatActivity;
+import android.widget.AbsListView;
+import android.widget.ListView;
+
+import com.example.gsyvideoplayer.R;
+import com.example.gsyvideoplayer.simple.adapter.SimpleListVideoModeAdapter;
+import com.shuyu.gsyvideoplayer.GSYVideoManager;
+
+/**
+ * 可切换列表
+ */
+public class SwitchListVideoActivity extends AppCompatActivity {
+
+ ListView videoList;
+
+ SwitchListVideoAdapter listNormalAdapter;
+
+ @Override
+ protected void onCreate(Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+ setContentView(R.layout.activity_list_video);
+
+ videoList = (ListView)findViewById(R.id.video_list);
+
+ listNormalAdapter = new SwitchListVideoAdapter(this);
+ videoList.setAdapter(listNormalAdapter);
+
+ videoList.setOnScrollListener(new AbsListView.OnScrollListener() {
+ @Override
+ public void onScrollStateChanged(AbsListView view, int scrollState) {
+ }
+
+ @Override
+ public void onScroll(AbsListView view, int firstVisibleItem, int visibleItemCount, int totalItemCount) {
+ int lastVisibleItem = firstVisibleItem + visibleItemCount;
+ //大于0说明有播放
+ if (GSYVideoManager.instance().getPlayPosition() >= 0) {
+ //当前播放的位置
+ int position = GSYVideoManager.instance().getPlayPosition();
+ //对应的播放列表TAG
+ if (GSYVideoManager.instance().getPlayTag().equals(SwitchListVideoAdapter.TAG)
+ && (position < firstVisibleItem || position > lastVisibleItem)) {
+ if(GSYVideoManager.isFullState(SwitchListVideoActivity.this)) {
+ return;
+ }
+ //如果滑出去了上面和下面就是否,和今日头条一样
+ GSYVideoManager.releaseAllVideos();
+ listNormalAdapter.notifyDataSetChanged();
+ }
+ }
+ }
+ });
+
+ }
+
+ @Override
+ public void onBackPressed() {
+ if (GSYVideoManager.backFromWindowFull(this)) {
+ return;
+ }
+ super.onBackPressed();
+ }
+
+ @Override
+ protected void onPause() {
+ super.onPause();
+ //GSYVideoManager.onPause();
+ }
+
+ @Override
+ protected void onResume() {
+ super.onResume();
+ //GSYVideoManager.onResume();
+ }
+
+ @Override
+ protected void onDestroy() {
+ super.onDestroy();
+ GSYVideoManager.releaseAllVideos();
+ }
+}
diff --git a/app/src/main/java/com/example/gsyvideoplayer/switchplay/SwitchListVideoAdapter.java b/app/src/main/java/com/example/gsyvideoplayer/switchplay/SwitchListVideoAdapter.java
new file mode 100644
index 0000000000000000000000000000000000000000..783a5c09d2cbce3257503481d4d1cb953e181b6c
--- /dev/null
+++ b/app/src/main/java/com/example/gsyvideoplayer/switchplay/SwitchListVideoAdapter.java
@@ -0,0 +1,102 @@
+package com.example.gsyvideoplayer.switchplay;
+
+import android.content.Context;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.BaseAdapter;
+import android.widget.ImageView;
+
+import com.example.gsyvideoplayer.R;
+import com.example.gsyvideoplayer.model.VideoModel;
+import com.shuyu.gsyvideoplayer.utils.OrientationUtils;
+import com.shuyu.gsyvideoplayer.video.StandardGSYVideoPlayer;
+
+import java.util.ArrayList;
+import java.util.List;
+
+public class SwitchListVideoAdapter extends BaseAdapter {
+
+ public static final String TAG = "SwitchListVideoAdapter";
+
+ private List list = new ArrayList<>();
+ private LayoutInflater inflater;
+ private Context context;
+
+ private StandardGSYVideoPlayer curPlayer;
+
+ protected OrientationUtils orientationUtils;
+
+ protected boolean isPlay;
+
+ protected boolean isFull;
+
+ public SwitchListVideoAdapter(Context context) {
+ super();
+ this.context = context;
+ inflater = LayoutInflater.from(context);
+ for (int i = 0; i < 40; i++) {
+ list.add(new VideoModel());
+ }
+
+ }
+
+ @Override
+ public int getCount() {
+ return list.size();
+ }
+
+ @Override
+ public Object getItem(int position) {
+ return null;
+ }
+
+ @Override
+ public long getItemId(int position) {
+ return 0;
+ }
+
+ @Override
+ public View getView(final int position, View convertView, ViewGroup parent) {
+ final ViewHolder holder;
+ if (convertView == null) {
+ holder = new ViewHolder();
+ convertView = inflater.inflate(R.layout.switch_list_video_item, null);
+ holder.gsyVideoPlayer = (SwitchVideo) convertView.findViewById(R.id.video_item_player);
+ holder.imageView = new ImageView(context);
+ convertView.setTag(holder);
+ } else {
+ holder = (ViewHolder) convertView.getTag();
+ }
+ final String urlH = "http://9890.vod.myqcloud.com/9890_4e292f9a3dd011e6b4078980237cc3d3.f20.mp4";
+ final String urlV = "http://7xse1z.com1.z0.glb.clouddn.com/1491813192";
+ final String url = (position % 2 == 0) ? urlH : urlV;
+ final int coverId = (position % 2 == 0) ? R.mipmap.xxx1 : R.mipmap.xxx2;
+
+
+ //防止错位设置
+ holder.gsyVideoPlayer.setPlayTag(TAG);
+ holder.gsyVideoPlayer.setPlayPosition(position);
+ SwitchUtil.optionPlayer(holder.gsyVideoPlayer, url, true, "这是title");
+ holder.gsyVideoPlayer.setUpLazy(url, true, null, null, "这是title");
+
+ //增加封面
+ holder.imageView.setScaleType(ImageView.ScaleType.CENTER_CROP);
+ holder.imageView.setImageResource(coverId);
+ if (holder.imageView.getParent() != null) {
+ ViewGroup viewGroup = (ViewGroup) holder.imageView.getParent();
+ viewGroup.removeView(holder.imageView);
+ }
+ holder.gsyVideoPlayer.setThumbImageView(holder.imageView);
+ holder.gsyVideoPlayer.getThumbImageViewLayout().setVisibility(View.VISIBLE);
+
+ return convertView;
+
+ }
+
+ class ViewHolder {
+ SwitchVideo gsyVideoPlayer;
+ ImageView imageView;
+ }
+
+}
diff --git a/app/src/main/java/com/example/gsyvideoplayer/switchplay/SwitchUtil.java b/app/src/main/java/com/example/gsyvideoplayer/switchplay/SwitchUtil.java
new file mode 100644
index 0000000000000000000000000000000000000000..3e67fa4d571e86d387faae84ff5d0db504605cab
--- /dev/null
+++ b/app/src/main/java/com/example/gsyvideoplayer/switchplay/SwitchUtil.java
@@ -0,0 +1,58 @@
+package com.example.gsyvideoplayer.switchplay;
+
+import android.content.Context;
+import android.content.Intent;
+import android.view.View;
+
+
+public class SwitchUtil {
+
+ private static SwitchVideo sSwitchVideo;
+
+ public static void optionPlayer(final SwitchVideo gsyVideoPlayer, String url, boolean cache, String title) {
+ //增加title
+ gsyVideoPlayer.getTitleTextView().setVisibility(View.GONE);
+ //设置返回键
+ gsyVideoPlayer.getBackButton().setVisibility(View.GONE);
+ //设置全屏按键功能
+ gsyVideoPlayer.getFullscreenButton().setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ gsyVideoPlayer.startWindowFullscreen(gsyVideoPlayer.getContext(), false, true);
+ }
+ });
+ //是否根据视频尺寸,自动选择竖屏全屏或者横屏全屏
+ gsyVideoPlayer.setAutoFullWithSize(true);
+ //音频焦点冲突时是否释放
+ gsyVideoPlayer.setReleaseWhenLossAudio(false);
+ //全屏动画
+ gsyVideoPlayer.setShowFullAnimation(false);
+ //小屏时不触摸滑动
+ gsyVideoPlayer.setIsTouchWiget(false);
+
+ gsyVideoPlayer.setSwitchUrl(url);
+
+ gsyVideoPlayer.setSwitchCache(cache);
+
+ gsyVideoPlayer.setSwitchTitle(title);
+ }
+
+
+ public static void gotoDetail(Context context, String url) {
+ Intent intent = new Intent(context, SwitchDetailActivity.class);
+ intent.putExtra(SwitchDetailActivity.URL, url);
+ context.startActivity(intent);
+ }
+
+ public static void savePlayState(SwitchVideo switchVideo) {
+ sSwitchVideo = switchVideo.saveState();
+ }
+
+ public static void clonePlayState(SwitchVideo switchVideo) {
+ switchVideo.cloneState(sSwitchVideo);
+ }
+
+ public static void release() {
+ sSwitchVideo = null;
+ }
+}
diff --git a/app/src/main/java/com/example/gsyvideoplayer/switchplay/SwitchVideo.java b/app/src/main/java/com/example/gsyvideoplayer/switchplay/SwitchVideo.java
new file mode 100644
index 0000000000000000000000000000000000000000..37aaca78b16c6ef646b4e7ee6bd917008f786418
--- /dev/null
+++ b/app/src/main/java/com/example/gsyvideoplayer/switchplay/SwitchVideo.java
@@ -0,0 +1,82 @@
+package com.example.gsyvideoplayer.switchplay;
+
+import android.content.Context;
+import android.util.AttributeSet;
+import android.view.View;
+import android.widget.TextView;
+
+import com.example.gsyvideoplayer.R;
+import com.shuyu.gsyvideoplayer.video.StandardGSYVideoPlayer;
+
+public class SwitchVideo extends StandardGSYVideoPlayer {
+
+ private TextView detailBtn;
+
+ public SwitchVideo(Context context, Boolean fullFlag) {
+ super(context, fullFlag);
+ }
+
+ public SwitchVideo(Context context) {
+ super(context);
+ }
+
+ public SwitchVideo(Context context, AttributeSet attrs) {
+ super(context, attrs);
+ }
+
+ @Override
+ protected void init(Context context) {
+ super.init(context);
+ detailBtn = (TextView) findViewById(R.id.detail_btn);
+ detailBtn.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ if (isInPlayingState()) {
+ SwitchUtil.savePlayState(SwitchVideo.this);
+ getGSYVideoManager().setLastListener(SwitchVideo.this);
+ SwitchUtil.gotoDetail(getContext(), mOriginUrl);
+ }
+ }
+ });
+ if (mIfCurrentIsFullscreen) {
+ detailBtn.setVisibility(GONE);
+ }
+
+ }
+
+ @Override
+ public int getLayoutId() {
+ return R.layout.switch_video;
+ }
+
+
+ public void setSwitchUrl(String url) {
+ mUrl = url;
+ mOriginUrl = url;
+ }
+
+ public void setSwitchCache(boolean cache) {
+ mCache = cache;
+ }
+
+ public void setSwitchTitle(String title) {
+ mTitle = title;
+ }
+
+ public void setSurfaceToPlay() {
+ addTextureView();
+ getGSYVideoManager().setListener(this);
+ checkoutState();
+ }
+
+ public SwitchVideo saveState() {
+ SwitchVideo switchVideo = new SwitchVideo(getContext());
+ cloneParams(this, switchVideo);
+ return switchVideo;
+ }
+
+ public void cloneState(SwitchVideo switchVideo) {
+ cloneParams(switchVideo, this);
+ }
+
+}
diff --git a/app/src/main/java/com/example/gsyvideoplayer/utils/JumpUtils.java b/app/src/main/java/com/example/gsyvideoplayer/utils/JumpUtils.java
index 762aa3d2176115f287ea47809b3fde9e67d55407..8fe75b30f4aed3346f06c83d93afbee16e6d91dd 100644
--- a/app/src/main/java/com/example/gsyvideoplayer/utils/JumpUtils.java
+++ b/app/src/main/java/com/example/gsyvideoplayer/utils/JumpUtils.java
@@ -32,6 +32,7 @@ import com.example.gsyvideoplayer.ScrollingActivity;
import com.example.gsyvideoplayer.WebDetailActivity;
import com.example.gsyvideoplayer.WindowActivity;
import com.example.gsyvideoplayer.exo.DetailExoListPlayer;
+import com.example.gsyvideoplayer.switchplay.SwitchListVideoActivity;
/**
* Created by shuyu on 2016/11/11.
@@ -324,4 +325,10 @@ public class JumpUtils {
activity.startActivity(intent);
}
+
+ public static void goToSwitch(Activity activity) {
+ Intent intent = new Intent(activity, SwitchListVideoActivity.class);
+ activity.startActivity(intent);
+ }
+
}
diff --git a/app/src/main/res/layout/activity_main.xml b/app/src/main/res/layout/activity_main.xml
index ccb6e930cacb776115a114780c0a6f7c5a0e93a3..29279113430f3440d6d64e0265009d3029d7665d 100644
--- a/app/src/main/res/layout/activity_main.xml
+++ b/app/src/main/res/layout/activity_main.xml
@@ -180,6 +180,14 @@
android:text="多任务支持" />
+
+
+