|
|
@@ -33,6 +33,8 @@ import com.google.android.exoplayer2.MediaItem;
|
|
|
import com.google.android.exoplayer2.PlaybackException;
|
|
|
import com.google.android.exoplayer2.Player;
|
|
|
import com.google.android.exoplayer2.SimpleExoPlayer;
|
|
|
+import com.google.android.exoplayer2.source.DefaultMediaSourceFactory;
|
|
|
+import com.google.android.exoplayer2.upstream.DefaultHttpDataSource;
|
|
|
import pl.droidsonroids.gif.GifImageView;
|
|
|
|
|
|
public class MainActivity extends BaseActivity {
|
|
|
@@ -315,7 +317,17 @@ public class MainActivity extends BaseActivity {
|
|
|
|
|
|
public void initMedAudio(){
|
|
|
if (player == null) {
|
|
|
- player = new SimpleExoPlayer.Builder(this).build();
|
|
|
+ // 配置 HTTP 层超时,避免网络波动时播放器无限期卡在缓冲
|
|
|
+ DefaultHttpDataSource.Factory dataSourceFactory = new DefaultHttpDataSource.Factory();
|
|
|
+ dataSourceFactory.setConnectTimeoutMs(10_000); // 连接超时 10s
|
|
|
+ dataSourceFactory.setReadTimeoutMs(20_000); // 读取超时 20s
|
|
|
+
|
|
|
+ DefaultMediaSourceFactory mediaSourceFactory =
|
|
|
+ new DefaultMediaSourceFactory(dataSourceFactory);
|
|
|
+
|
|
|
+ player = new SimpleExoPlayer.Builder(this)
|
|
|
+ .setMediaSourceFactory(mediaSourceFactory)
|
|
|
+ .build();
|
|
|
// 仅添加一次全局监听器
|
|
|
player.addListener(globalPlayerListener);
|
|
|
}
|
|
|
@@ -444,4 +456,4 @@ public class MainActivity extends BaseActivity {
|
|
|
webIDs = null;
|
|
|
}
|
|
|
}
|
|
|
-}
|
|
|
+}
|