|
43 | 43 | import java.util.Locale; |
44 | 44 | import java.util.Map; |
45 | 45 |
|
| 46 | +import tv.danmaku.ijk.media.exo.IjkExoMediaPlayer; |
46 | 47 | import tv.danmaku.ijk.media.player.AndroidMediaPlayer; |
47 | 48 | import tv.danmaku.ijk.media.player.IMediaPlayer; |
48 | 49 | import tv.danmaku.ijk.media.player.IjkMediaPlayer; |
@@ -290,46 +291,57 @@ private void openVideo() { |
290 | 291 | am.requestAudioFocus(null, AudioManager.STREAM_MUSIC, AudioManager.AUDIOFOCUS_GAIN); |
291 | 292 |
|
292 | 293 | try { |
293 | | - if (mSettings.getUsingAndroidPlayer()) { |
294 | | - AndroidMediaPlayer androidMediaPlayer = new AndroidMediaPlayer(); |
295 | | - mMediaPlayer = androidMediaPlayer; |
296 | | - } else { |
297 | | - IjkMediaPlayer ijkMediaPlayer = null; |
298 | | - if (mUri != null) { |
299 | | - ijkMediaPlayer = new IjkMediaPlayer(); |
300 | | - ijkMediaPlayer.native_setLogLevel(IjkMediaPlayer.IJK_LOG_DEBUG); |
301 | | - |
302 | | - if (mSettings.getUsingMediaCodec()) { |
303 | | - ijkMediaPlayer.setOption(IjkMediaPlayer.OPT_CATEGORY_PLAYER, "mediacodec", 1); |
304 | | - if (mSettings.getUsingMediaCodecAutoRotate()) { |
305 | | - ijkMediaPlayer.setOption(IjkMediaPlayer.OPT_CATEGORY_PLAYER, "mediacodec-auto-rotate", 1); |
| 294 | + switch (mSettings.getPlayer()) { |
| 295 | + case Settings.PV_PLAYER__IjkMediaPlayer: { |
| 296 | + IjkMediaPlayer ijkMediaPlayer = null; |
| 297 | + if (mUri != null) { |
| 298 | + ijkMediaPlayer = new IjkMediaPlayer(); |
| 299 | + ijkMediaPlayer.native_setLogLevel(IjkMediaPlayer.IJK_LOG_DEBUG); |
| 300 | + |
| 301 | + if (mSettings.getUsingMediaCodec()) { |
| 302 | + ijkMediaPlayer.setOption(IjkMediaPlayer.OPT_CATEGORY_PLAYER, "mediacodec", 1); |
| 303 | + if (mSettings.getUsingMediaCodecAutoRotate()) { |
| 304 | + ijkMediaPlayer.setOption(IjkMediaPlayer.OPT_CATEGORY_PLAYER, "mediacodec-auto-rotate", 1); |
| 305 | + } else { |
| 306 | + ijkMediaPlayer.setOption(IjkMediaPlayer.OPT_CATEGORY_PLAYER, "mediacodec-auto-rotate", 0); |
| 307 | + } |
306 | 308 | } else { |
307 | | - ijkMediaPlayer.setOption(IjkMediaPlayer.OPT_CATEGORY_PLAYER, "mediacodec-auto-rotate", 0); |
| 309 | + ijkMediaPlayer.setOption(IjkMediaPlayer.OPT_CATEGORY_PLAYER, "mediacodec", 0); |
308 | 310 | } |
309 | | - } else { |
310 | | - ijkMediaPlayer.setOption(IjkMediaPlayer.OPT_CATEGORY_PLAYER, "mediacodec", 0); |
311 | | - } |
312 | 311 |
|
313 | | - if (mSettings.getUsingOpenSLES()) { |
314 | | - ijkMediaPlayer.setOption(IjkMediaPlayer.OPT_CATEGORY_PLAYER, "opensles", 1); |
315 | | - } else { |
316 | | - ijkMediaPlayer.setOption(IjkMediaPlayer.OPT_CATEGORY_PLAYER, "opensles", 0); |
317 | | - } |
| 312 | + if (mSettings.getUsingOpenSLES()) { |
| 313 | + ijkMediaPlayer.setOption(IjkMediaPlayer.OPT_CATEGORY_PLAYER, "opensles", 1); |
| 314 | + } else { |
| 315 | + ijkMediaPlayer.setOption(IjkMediaPlayer.OPT_CATEGORY_PLAYER, "opensles", 0); |
| 316 | + } |
318 | 317 |
|
319 | | - String pixelFormat = mSettings.getPixelFormat(); |
320 | | - if (TextUtils.isEmpty(pixelFormat)) { |
321 | | - ijkMediaPlayer.setOption(IjkMediaPlayer.OPT_CATEGORY_PLAYER, "overlay-format", IjkMediaPlayer.SDL_FCC_RV32); |
322 | | - } else { |
323 | | - ijkMediaPlayer.setOption(IjkMediaPlayer.OPT_CATEGORY_PLAYER, "overlay-format", pixelFormat); |
324 | | - } |
325 | | - ijkMediaPlayer.setOption(IjkMediaPlayer.OPT_CATEGORY_PLAYER, "framedrop", 1); |
326 | | - ijkMediaPlayer.setOption(IjkMediaPlayer.OPT_CATEGORY_PLAYER, "start-on-prepared", 0); |
| 318 | + String pixelFormat = mSettings.getPixelFormat(); |
| 319 | + if (TextUtils.isEmpty(pixelFormat)) { |
| 320 | + ijkMediaPlayer.setOption(IjkMediaPlayer.OPT_CATEGORY_PLAYER, "overlay-format", IjkMediaPlayer.SDL_FCC_RV32); |
| 321 | + } else { |
| 322 | + ijkMediaPlayer.setOption(IjkMediaPlayer.OPT_CATEGORY_PLAYER, "overlay-format", pixelFormat); |
| 323 | + } |
| 324 | + ijkMediaPlayer.setOption(IjkMediaPlayer.OPT_CATEGORY_PLAYER, "framedrop", 1); |
| 325 | + ijkMediaPlayer.setOption(IjkMediaPlayer.OPT_CATEGORY_PLAYER, "start-on-prepared", 0); |
327 | 326 |
|
328 | | - ijkMediaPlayer.setOption(IjkMediaPlayer.OPT_CATEGORY_FORMAT, "http-detect-range-support", 0); |
| 327 | + ijkMediaPlayer.setOption(IjkMediaPlayer.OPT_CATEGORY_FORMAT, "http-detect-range-support", 0); |
329 | 328 |
|
330 | | - ijkMediaPlayer.setOption(IjkMediaPlayer.OPT_CATEGORY_CODEC, "skip_loop_filter", 48); |
| 329 | + ijkMediaPlayer.setOption(IjkMediaPlayer.OPT_CATEGORY_CODEC, "skip_loop_filter", 48); |
| 330 | + } |
| 331 | + mMediaPlayer = ijkMediaPlayer; |
| 332 | + } |
| 333 | + break; |
| 334 | + case Settings.PV_PLAYER__IjkExoMediaPlayer: { |
| 335 | + IjkExoMediaPlayer IjkExoMediaPlayer = new IjkExoMediaPlayer(mAppContext); |
| 336 | + mMediaPlayer = IjkExoMediaPlayer; |
331 | 337 | } |
332 | | - mMediaPlayer = ijkMediaPlayer; |
| 338 | + break; |
| 339 | + case Settings.PV_PLAYER__AndroidMediaPlayer: |
| 340 | + default: { |
| 341 | + AndroidMediaPlayer androidMediaPlayer = new AndroidMediaPlayer(); |
| 342 | + mMediaPlayer = androidMediaPlayer; |
| 343 | + } |
| 344 | + break; |
333 | 345 | } |
334 | 346 |
|
335 | 347 | if (mSettings.getEnableDetachedSurfaceTextureView()) { |
@@ -456,7 +468,7 @@ public void onPrepared(IMediaPlayer mp) { |
456 | 468 | mMediaController.show(); |
457 | 469 | } |
458 | 470 | } else if (!isPlaying() && |
459 | | - (seekToPosition != 0 || getCurrentPosition() > 0)) { |
| 471 | + (seekToPosition != 0 || getCurrentPosition() > 0)) { |
460 | 472 | if (mMediaController != null) { |
461 | 473 | // Show the media controls when we're paused into a video and make 'em stick. |
462 | 474 | mMediaController.show(0); |
@@ -1019,7 +1031,7 @@ public void showMediaInfo() { |
1019 | 1031 | ITrackInfo trackInfos[] = mMediaPlayer.getTrackInfo(); |
1020 | 1032 | if (trackInfos != null) { |
1021 | 1033 | int index = -1; |
1022 | | - for (ITrackInfo trackInfo: trackInfos) { |
| 1034 | + for (ITrackInfo trackInfo : trackInfos) { |
1023 | 1035 | index++; |
1024 | 1036 |
|
1025 | 1037 | int trackType = trackInfo.getTrackType(); |
@@ -1082,7 +1094,8 @@ private String buildTimeMilli(long duration) { |
1082 | 1094 | long seconds = total_seconds % 60; |
1083 | 1095 | if (duration <= 0) { |
1084 | 1096 | return "--:--"; |
1085 | | - } if (hours >= 100) { |
| 1097 | + } |
| 1098 | + if (hours >= 100) { |
1086 | 1099 | return String.format(Locale.US, "%d:%02d:%02d", hours, minutes, seconds); |
1087 | 1100 | } else if (hours > 0) { |
1088 | 1101 | return String.format(Locale.US, "%02d:%02d:%02d", hours, minutes, seconds); |
|
0 commit comments