更换直播间视频渲染层以修复部分机型和模拟器滑动视频时白屏问题
This commit is contained in:
@@ -6,12 +6,12 @@ import android.content.Context;
|
||||
import android.os.Handler;
|
||||
import android.os.Looper;
|
||||
import android.util.Log;
|
||||
import android.view.SurfaceView;
|
||||
|
||||
import com.google.android.exoplayer2.ExoPlayer;
|
||||
import com.google.android.exoplayer2.MediaItem;
|
||||
import com.google.android.exoplayer2.Player;
|
||||
import com.google.android.exoplayer2.analytics.AnalyticsListener;
|
||||
import com.google.android.exoplayer2.ui.StyledPlayerView;
|
||||
import com.google.android.exoplayer2.video.VideoSize;
|
||||
|
||||
/**
|
||||
@@ -23,7 +23,7 @@ public class LiveExoPlayerManager {
|
||||
private final int MODEL_PLAY2 = 1;//当前子播放器
|
||||
private Context mContext;
|
||||
private ExoPlayer player1, player2;
|
||||
private SurfaceView mainView;//渲染视图
|
||||
private StyledPlayerView mainView;//渲染视图
|
||||
private int status = MODEL_PLAY1;
|
||||
private Player.Listener listener;
|
||||
private boolean isSwitchUrl = false;//是否为主动切换播放器
|
||||
@@ -42,11 +42,12 @@ public class LiveExoPlayerManager {
|
||||
setAnalyticsListener();
|
||||
}
|
||||
|
||||
|
||||
public void setListener(Player.Listener listener) {
|
||||
this.listener = listener;
|
||||
}
|
||||
|
||||
public void setMainView(SurfaceView mainView) {
|
||||
public void setMainView(StyledPlayerView mainView) {
|
||||
this.mainView = mainView;
|
||||
}
|
||||
|
||||
@@ -119,7 +120,8 @@ public class LiveExoPlayerManager {
|
||||
Player.Listener.super.onIsPlayingChanged(isPlaying);
|
||||
if (isPlaying) {
|
||||
Log.i(TAG, "onIsPlayingChanged1: 播放了");
|
||||
player1.setVideoSurfaceView(mainView);
|
||||
//player1.setVideoSurfaceView(mainView);
|
||||
mainView.setPlayer(player1);
|
||||
status = MODEL_PLAY1;
|
||||
isSwitchUrl = false;
|
||||
if (listener != null) {
|
||||
@@ -169,7 +171,8 @@ public class LiveExoPlayerManager {
|
||||
Player.Listener.super.onIsPlayingChanged(isPlaying);
|
||||
if (isPlaying) {
|
||||
Log.i(TAG, "onIsPlayingChanged2: 播放了");
|
||||
player2.setVideoSurfaceView(mainView);
|
||||
//player2.setVideoSurfaceView(mainView);
|
||||
mainView.setPlayer(player2);
|
||||
status = MODEL_PLAY2;
|
||||
isSwitchUrl = false;
|
||||
if (listener != null) {
|
||||
@@ -202,7 +205,8 @@ public class LiveExoPlayerManager {
|
||||
public void startUrl(String url) {
|
||||
isSwitchUrl = true;
|
||||
playBufferIndex = 0;
|
||||
getNowPlayer().setVideoSurfaceView(mainView);
|
||||
//getNowPlayer().setVideoSurfaceView(mainView);
|
||||
mainView.setPlayer(getNowPlayer());
|
||||
getNowPlayer().setMediaItem(createMediaItem(url));
|
||||
getNowPlayer().prepare();
|
||||
getNowPlayer().play();
|
||||
|
||||
Reference in New Issue
Block a user