|
@@ -46,63 +46,61 @@ public class JZMediaIjk extends JZMediaInterface implements IMediaPlayer.OnPrepa
|
|
mMediaHandler = new Handler(mMediaHandlerThread.getLooper());
|
|
mMediaHandler = new Handler(mMediaHandlerThread.getLooper());
|
|
handler = new Handler();
|
|
handler = new Handler();
|
|
|
|
|
|
- mMediaHandler.post(() -> {
|
|
+ try {
|
|
- try {
|
|
+ ijkMediaPlayer = new IjkMediaPlayer();
|
|
- ijkMediaPlayer = new IjkMediaPlayer();
|
|
+ ijkMediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC);
|
|
- ijkMediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC);
|
|
+
|
|
-
|
|
+ ijkMediaPlayer.setOption(IjkMediaPlayer.OPT_CATEGORY_PLAYER, "mediacodec", 0);
|
|
- ijkMediaPlayer.setOption(IjkMediaPlayer.OPT_CATEGORY_PLAYER, "mediacodec", 0);
|
|
+ ijkMediaPlayer.setOption(IjkMediaPlayer.OPT_CATEGORY_PLAYER, "mediacodec-auto-rotate", 1);
|
|
- ijkMediaPlayer.setOption(IjkMediaPlayer.OPT_CATEGORY_PLAYER, "mediacodec-auto-rotate", 1);
|
|
+ ijkMediaPlayer.setOption(IjkMediaPlayer.OPT_CATEGORY_PLAYER, "mediacodec-handle-resolution-change", 1);
|
|
- ijkMediaPlayer.setOption(IjkMediaPlayer.OPT_CATEGORY_PLAYER, "mediacodec-handle-resolution-change", 1);
|
|
+
|
|
-
|
|
+ ijkMediaPlayer.setOption(IjkMediaPlayer.OPT_CATEGORY_PLAYER, "opensles", 0);
|
|
- ijkMediaPlayer.setOption(IjkMediaPlayer.OPT_CATEGORY_PLAYER, "opensles", 0);
|
|
+
|
|
-
|
|
+ ijkMediaPlayer.setOption(IjkMediaPlayer.OPT_CATEGORY_PLAYER, "overlay-format", IjkMediaPlayer.SDL_FCC_RV32);
|
|
- ijkMediaPlayer.setOption(IjkMediaPlayer.OPT_CATEGORY_PLAYER, "overlay-format", IjkMediaPlayer.SDL_FCC_RV32);
|
|
+
|
|
-
|
|
+ ijkMediaPlayer.setOption(IjkMediaPlayer.OPT_CATEGORY_PLAYER, "framedrop", 1);
|
|
- ijkMediaPlayer.setOption(IjkMediaPlayer.OPT_CATEGORY_PLAYER, "framedrop", 1);
|
|
+
|
|
-
|
|
+ ijkMediaPlayer.setOption(IjkMediaPlayer.OPT_CATEGORY_PLAYER, "start-on-prepared", 0);
|
|
- ijkMediaPlayer.setOption(IjkMediaPlayer.OPT_CATEGORY_PLAYER, "start-on-prepared", 0);
|
|
+
|
|
-
|
|
+ ijkMediaPlayer.setOption(IjkMediaPlayer.OPT_CATEGORY_FORMAT, "http-detect-range-support", 0);
|
|
- ijkMediaPlayer.setOption(IjkMediaPlayer.OPT_CATEGORY_FORMAT, "http-detect-range-support", 0);
|
|
+
|
|
-
|
|
+ ijkMediaPlayer.setOption(IjkMediaPlayer.OPT_CATEGORY_CODEC, "skip_loop_filter", 48);
|
|
- ijkMediaPlayer.setOption(IjkMediaPlayer.OPT_CATEGORY_CODEC, "skip_loop_filter", 48);
|
|
+
|
|
-
|
|
+ ijkMediaPlayer.setOption(IjkMediaPlayer.OPT_CATEGORY_PLAYER, "max-buffer-size", 1024 * 1024);
|
|
- ijkMediaPlayer.setOption(IjkMediaPlayer.OPT_CATEGORY_PLAYER, "max-buffer-size", 1024 * 1024);
|
|
+
|
|
-
|
|
+ ijkMediaPlayer.setOption(IjkMediaPlayer.OPT_CATEGORY_PLAYER, "enable-accurate-seek", 1);
|
|
- ijkMediaPlayer.setOption(IjkMediaPlayer.OPT_CATEGORY_PLAYER, "enable-accurate-seek", 1);
|
|
+
|
|
-
|
|
+ ijkMediaPlayer.setOption(IjkMediaPlayer.OPT_CATEGORY_FORMAT, "reconnect", 1);
|
|
- ijkMediaPlayer.setOption(IjkMediaPlayer.OPT_CATEGORY_FORMAT, "reconnect", 1);
|
|
+
|
|
-
|
|
+ ijkMediaPlayer.setOption(IjkMediaPlayer.OPT_CATEGORY_FORMAT, "dns_cache_clear", 1);
|
|
- ijkMediaPlayer.setOption(IjkMediaPlayer.OPT_CATEGORY_FORMAT, "dns_cache_clear", 1);
|
|
+
|
|
-
|
|
+ ijkMediaPlayer.setOption(IjkMediaPlayer.OPT_CATEGORY_FORMAT, "fflags", "fastseek");
|
|
- ijkMediaPlayer.setOption(IjkMediaPlayer.OPT_CATEGORY_FORMAT, "fflags", "fastseek");
|
|
+
|
|
-
|
|
|
|
|
|
|
|
-
|
|
+
|
|
- ijkMediaPlayer.setOption(IjkMediaPlayer.OPT_CATEGORY_PLAYER, "soundtouch", 1);
|
|
+ ijkMediaPlayer.setOption(IjkMediaPlayer.OPT_CATEGORY_PLAYER, "soundtouch", 1);
|
|
-
|
|
+
|
|
- ijkMediaPlayer.setOnPreparedListener(JZMediaIjk.this);
|
|
+ ijkMediaPlayer.setOnPreparedListener(JZMediaIjk.this);
|
|
- ijkMediaPlayer.setOnVideoSizeChangedListener(JZMediaIjk.this);
|
|
+ ijkMediaPlayer.setOnVideoSizeChangedListener(JZMediaIjk.this);
|
|
- ijkMediaPlayer.setOnCompletionListener(JZMediaIjk.this);
|
|
+ ijkMediaPlayer.setOnCompletionListener(JZMediaIjk.this);
|
|
- ijkMediaPlayer.setOnErrorListener(JZMediaIjk.this);
|
|
+ ijkMediaPlayer.setOnErrorListener(JZMediaIjk.this);
|
|
- ijkMediaPlayer.setOnInfoListener(JZMediaIjk.this);
|
|
+ ijkMediaPlayer.setOnInfoListener(JZMediaIjk.this);
|
|
- ijkMediaPlayer.setOnBufferingUpdateListener(JZMediaIjk.this);
|
|
+ ijkMediaPlayer.setOnBufferingUpdateListener(JZMediaIjk.this);
|
|
- ijkMediaPlayer.setOnSeekCompleteListener(JZMediaIjk.this);
|
|
+ ijkMediaPlayer.setOnSeekCompleteListener(JZMediaIjk.this);
|
|
- ijkMediaPlayer.setOnTimedTextListener(JZMediaIjk.this);
|
|
+ ijkMediaPlayer.setOnTimedTextListener(JZMediaIjk.this);
|
|
-
|
|
+
|
|
-
|
|
+
|
|
- ijkMediaPlayer.setDataSource(jzvd.jzDataSource.getCurrentUrl().toString());
|
|
+ ijkMediaPlayer.setDataSource(jzvd.jzDataSource.getCurrentUrl().toString());
|
|
- ijkMediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC);
|
|
+ ijkMediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC);
|
|
- ijkMediaPlayer.setScreenOnWhilePlaying(true);
|
|
+ ijkMediaPlayer.setScreenOnWhilePlaying(true);
|
|
- ijkMediaPlayer.prepareAsync();
|
|
+ ijkMediaPlayer.prepareAsync();
|
|
-
|
|
+
|
|
- if (jzvd.textureView.getSurfaceTexture() != null && ijkMediaPlayer != null) {
|
|
+ if (jzvd.textureView.getSurfaceTexture() != null && ijkMediaPlayer != null) {
|
|
- ijkMediaPlayer.setSurface(new Surface(jzvd.textureView.getSurfaceTexture()));
|
|
+ ijkMediaPlayer.setSurface(new Surface(jzvd.textureView.getSurfaceTexture()));
|
|
- }
|
|
|
|
- } catch (IOException e) {
|
|
|
|
- e.printStackTrace();
|
|
|
|
}
|
|
}
|
|
- });
|
|
+ } catch (IOException e) {
|
|
|
|
+ e.printStackTrace();
|
|
|
|
+ }
|
|
|
|
|
|
}
|
|
}
|
|
|
|
|