@Override public void onPageSelected(int position) { Player.releaseAllPlayer(); }
@Override public void onActivityDestroyed(Activity activity) { Player.releaseAllPlayer(); } }
@Override public void onAudioFocusChange(int focusChange) { switch (focusChange) { case AudioManager.AUDIOFOCUS_GAIN: break; case AudioManager.AUDIOFOCUS_LOSS: releaseAllPlayer(); break; case AudioManager.AUDIOFOCUS_LOSS_TRANSIENT: try { Player player = PlayerManager.getCurrentPlayer(); if (player != null && player.playerState == PLAYER_STATE_PLAYING) { player.iv_play.performClick(); } } catch (IllegalStateException e) { e.printStackTrace(); } break; case AudioManager.AUDIOFOCUS_LOSS_TRANSIENT_CAN_DUCK: break; } } }
vp.removeView(old); releaseAllPlayer(); try { Constructor<BasePlayer> constructor = (Constructor<BasePlayer>) _class.getConstructor(Context.class);
public static BasePlayer openFullPlayer(Context context, Class<? extends BasePlayer> _class, DataSource dataSource, int orientation, ScreenType type) { hideSupportActionBar(context); PlayerUtils.setRequestedOrientation(context, orientation); ViewGroup vp = (PlayerUtils.scanForActivity(context)) .findViewById(Window.ID_ANDROID_CONTENT); View old = vp.findViewById(R.id.iplayer_fullscreen_id); if (old != null) { vp.removeView(old); } releaseAllPlayer(); try { Constructor<BasePlayer> constructor = (Constructor<BasePlayer>) _class.getConstructor(Context.class); final BasePlayer player = constructor.newInstance(context); player.setId(R.id.iplayer_fullscreen_id); FrameLayout.LayoutParams lp = new FrameLayout.LayoutParams( ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT); vp.addView(player, lp); player.setScreenType(type); player.setDataSource(dataSource, CONTAINER_MODE_FULLSCREEN); CLICK_QUIT_FULLSCREEN_TIME = System.currentTimeMillis(); player.iv_play.performClick(); return player; } catch (InstantiationException e) { e.printStackTrace(); } catch (Exception e) { e.printStackTrace(); } return null; }
@Override public void onChildViewDetachedFromWindow(View view) { BasePlayer video = PlayerUtils.findPlayer(view); if (video != null && video.getDataSource().equals(MediaManager.getDataSource())) { BasePlayer player = PlayerManager.getCurrentPlayer(); if (player != null && player.enableTinyWindow && player.getPlayerState() == PlayerState.PLAYER_STATE_PLAYING) { player.startTinyPlayer(); } else if (player != null) { Player.releaseAllPlayer(); } } }
@Override public void onScroll(AbsListView view, int firstVisibleItem, int visibleItemCount, int totalItemCount) { if (this.firstVisibleItem == firstVisibleItem && this.lastVisibleItem == firstVisibleItem + visibleItemCount) return; int currentPlayPosition = MediaManager.get().positionInList; int lastVisibleItem = firstVisibleItem + visibleItemCount; if (currentPlayPosition == -1) return; if ((currentPlayPosition < firstVisibleItem || currentPlayPosition > (lastVisibleItem - 1))) { if (PlayerManager.getCurrentPlayer() != null && PlayerManager.getSecondPlayer() == null && PlayerManager.getCurrentPlayer().containerMode == CONTAINER_MODE_LIST) { if (PlayerManager.getCurrentPlayer().enableTinyWindow && PlayerManager.getCurrentPlayer().getPlayerState() == PLAYER_STATE_PLAYING) { PlayerManager.getCurrentPlayer().startTinyPlayer(); } else { Player.releaseAllPlayer(); } } } else if (PlayerManager.getFirstPlayer() != null && PlayerManager.getFirstPlayer().enableTinyWindow && PlayerManager.getSecondPlayer() != null && PlayerManager.getCurrentPlayer().containerMode == CONTAINER_MODE_TINY) { PlayerManager.getFirstPlayer().playOnSelfPlayer(); } this.firstVisibleItem = firstVisibleItem; this.lastVisibleItem = firstVisibleItem + visibleItemCount; }