|  |  | @ -147,7 +147,6 @@ public class IjkVideoView extends FrameLayout implements MediaController.MediaPl | 
			
		
	
		
		
			
				
					
					|  |  |  |         mAppContext = context.getApplicationContext(); |  |  |  |         mAppContext = context.getApplicationContext(); | 
			
		
	
		
		
			
				
					
					|  |  |  |         mSettings = new Settings(mAppContext); |  |  |  |         mSettings = new Settings(mAppContext); | 
			
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  |         initBackground(); |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |         initRenders(); |  |  |  |         initRenders(); | 
			
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  |         mVideoWidth = 0; |  |  |  |         mVideoWidth = 0; | 
			
		
	
	
		
		
			
				
					|  |  | @ -940,75 +939,10 @@ public class IjkVideoView extends FrameLayout implements MediaController.MediaPl | 
			
		
	
		
		
			
				
					
					|  |  |  |         setRender(mCurrentRender); |  |  |  |         setRender(mCurrentRender); | 
			
		
	
		
		
			
				
					
					|  |  |  |     } |  |  |  |     } | 
			
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  |     public int toggleRender() { |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |         mCurrentRenderIndex++; |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |         mCurrentRenderIndex %= mAllRenders.size(); |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |         mCurrentRender = mAllRenders.get(mCurrentRenderIndex); |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |         setRender(mCurrentRender); |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |         return mCurrentRender; |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |     } |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |     public static String getRenderText(Context context, int render) { |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |         String text; |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | //        switch (render) {
 |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | //            case RENDER_NONE:
 |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | //                text = context.getString(R.string.VideoView_render_none);
 |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | //                break;
 |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | //            case RENDER_SURFACE_VIEW:
 |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | //                text = context.getString(R.string.VideoView_render_surface_view);
 |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | //                break;
 |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | //            case RENDER_TEXTURE_VIEW:
 |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | //                text = context.getString(R.string.VideoView_render_texture_view);
 |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | //                break;
 |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | //            default:
 |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | //                text = context.getString(R.string.N_A);
 |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | //                break;
 |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | //        }
 |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |         return "getRenderText"; |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |     } |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |     //-------------------------
 |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |     // Extend: Player
 |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |     //-------------------------
 |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |     public int togglePlayer() { |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |         if (mMediaPlayer != null) |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |             mMediaPlayer.release(); |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |         if (mRenderView != null) |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |             mRenderView.getView().invalidate(); |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |         openVideo(); |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |         return mSettings.getPlayer(); |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |     } |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |     public static String getPlayerText(Context context, int player) { |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | //        String text;
 |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | //        switch (player) {
 |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | //            case Settings.PV_PLAYER__AndroidMediaPlayer:
 |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | //                text = context.getString(R.string.VideoView_player_AndroidMediaPlayer);
 |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | //                break;
 |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | //            case Settings.PV_PLAYER__IjkMediaPlayer:
 |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | //                text = context.getString(R.string.VideoView_player_IjkMediaPlayer);
 |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | //                break;
 |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | //            case Settings.PV_PLAYER__IjkExoMediaPlayer:
 |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | //                text = context.getString(R.string.VideoView_player_IjkExoMediaPlayer);
 |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | //                break;
 |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | //            default:
 |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | //                text = context.getString(R.string.N_A);
 |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | //                break;
 |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | //        }
 |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |         return "getPlayerText"; |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |     } |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |     public IMediaPlayer createPlayer(int playerType) { |  |  |  |     public IMediaPlayer createPlayer(int playerType) { | 
			
		
	
		
		
			
				
					
					|  |  |  |         IMediaPlayer mediaPlayer = null; |  |  |  |         IMediaPlayer mediaPlayer = null; | 
			
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  |         switch (playerType) { |  |  |  |         switch (playerType) { | 
			
		
	
		
		
			
				
					
					|  |  |  | //            case Settings.PV_PLAYER__IjkExoMediaPlayer: {
 |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | //                IjkExoMediaPlayer IjkExoMediaPlayer = new IjkExoMediaPlayer(mAppContext);
 |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | //                mediaPlayer = IjkExoMediaPlayer;
 |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | //            }
 |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | //            break;
 |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |             case Settings.PV_PLAYER__AndroidMediaPlayer: { |  |  |  |             case Settings.PV_PLAYER__AndroidMediaPlayer: { | 
			
		
	
		
		
			
				
					
					|  |  |  |                 AndroidMediaPlayer androidMediaPlayer = new AndroidMediaPlayer(); |  |  |  |                 AndroidMediaPlayer androidMediaPlayer = new AndroidMediaPlayer(); | 
			
		
	
		
		
			
				
					
					|  |  |  |                 mediaPlayer = androidMediaPlayer; |  |  |  |                 mediaPlayer = androidMediaPlayer; | 
			
		
	
	
		
		
			
				
					|  |  | @ -1072,180 +1006,4 @@ public class IjkVideoView extends FrameLayout implements MediaController.MediaPl | 
			
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  |         return mediaPlayer; |  |  |  |         return mediaPlayer; | 
			
		
	
		
		
			
				
					
					|  |  |  |     } |  |  |  |     } | 
			
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |     //-------------------------
 |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |     // Extend: Background
 |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |     //-------------------------
 |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |     private boolean mEnableBackgroundPlay = false; |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |     private void initBackground() { |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | //        mEnableBackgroundPlay = mSettings.getEnableBackgroundPlay();
 |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | //        if (mEnableBackgroundPlay) {
 |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | //            MediaPlayerService.intentToStart(getContext());
 |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | //            mMediaPlayer = MediaPlayerService.getMediaPlayer();
 |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | //            if (mHudViewHolder != null)
 |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | //                mHudViewHolder.setMediaPlayer(mMediaPlayer);
 |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | //        }
 |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |     } |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |     public boolean isBackgroundPlayEnabled() { |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |         return mEnableBackgroundPlay; |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |     } |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | //    public void enterBackground() {
 |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | //        MediaPlayerService.setMediaPlayer(mMediaPlayer);
 |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | //    }
 |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | //
 |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | //    public void stopBackgroundPlay() {
 |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | //        MediaPlayerService.setMediaPlayer(null);
 |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | //    }
 |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |     //-------------------------
 |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |     // Extend: Background
 |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |     //-------------------------
 |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | //    public void showMediaInfo() {
 |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | //        if (mMediaPlayer == null)
 |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | //            return;
 |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | //
 |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | //        int selectedVideoTrack = MediaPlayerCompat.getSelectedTrack(mMediaPlayer, ITrackInfo.MEDIA_TRACK_TYPE_VIDEO);
 |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | //        int selectedAudioTrack = MediaPlayerCompat.getSelectedTrack(mMediaPlayer, ITrackInfo.MEDIA_TRACK_TYPE_AUDIO);
 |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | //        int selectedSubtitleTrack = MediaPlayerCompat.getSelectedTrack(mMediaPlayer, ITrackInfo.MEDIA_TRACK_TYPE_TIMEDTEXT);
 |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | //
 |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | //        TableLayoutBinder builder = new TableLayoutBinder(getContext());
 |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | //        builder.appendSection(R.string.mi_player);
 |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | //        builder.appendRow2(R.string.mi_player, MediaPlayerCompat.getName(mMediaPlayer));
 |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | //        builder.appendSection(R.string.mi_media);
 |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | //        builder.appendRow2(R.string.mi_resolution, buildResolution(mVideoWidth, mVideoHeight, mVideoSarNum, mVideoSarDen));
 |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | //        builder.appendRow2(R.string.mi_length, buildTimeMilli(mMediaPlayer.getDuration()));
 |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | //
 |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | //        ITrackInfo trackInfos[] = mMediaPlayer.getTrackInfo();
 |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | //        if (trackInfos != null) {
 |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | //            int index = -1;
 |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | //            for (ITrackInfo trackInfo : trackInfos) {
 |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | //                index++;
 |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | //
 |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | //                int trackType = trackInfo.getTrackType();
 |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | //                if (index == selectedVideoTrack) {
 |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | //                    builder.appendSection(getContext().getString(R.string.mi_stream_fmt1, index) + " " + getContext().getString(R.string.mi__selected_video_track));
 |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | //                } else if (index == selectedAudioTrack) {
 |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | //                    builder.appendSection(getContext().getString(R.string.mi_stream_fmt1, index) + " " + getContext().getString(R.string.mi__selected_audio_track));
 |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | //                } else if (index == selectedSubtitleTrack) {
 |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | //                    builder.appendSection(getContext().getString(R.string.mi_stream_fmt1, index) + " " + getContext().getString(R.string.mi__selected_subtitle_track));
 |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | //                } else {
 |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | //                    builder.appendSection(getContext().getString(R.string.mi_stream_fmt1, index));
 |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | //                }
 |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | //                builder.appendRow2(R.string.mi_type, buildTrackType(trackType));
 |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | //                builder.appendRow2(R.string.mi_language, buildLanguage(trackInfo.getLanguage()));
 |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | //
 |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | //                IMediaFormat mediaFormat = trackInfo.getFormat();
 |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | //                if (mediaFormat == null) {
 |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | //                } else if (mediaFormat instanceof IjkMediaFormat) {
 |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | //                    switch (trackType) {
 |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | //                        case ITrackInfo.MEDIA_TRACK_TYPE_VIDEO:
 |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | //                            builder.appendRow2(R.string.mi_codec, mediaFormat.getString(IjkMediaFormat.KEY_IJK_CODEC_LONG_NAME_UI));
 |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | //                            builder.appendRow2(R.string.mi_profile_level, mediaFormat.getString(IjkMediaFormat.KEY_IJK_CODEC_PROFILE_LEVEL_UI));
 |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | //                            builder.appendRow2(R.string.mi_pixel_format, mediaFormat.getString(IjkMediaFormat.KEY_IJK_CODEC_PIXEL_FORMAT_UI));
 |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | //                            builder.appendRow2(R.string.mi_resolution, mediaFormat.getString(IjkMediaFormat.KEY_IJK_RESOLUTION_UI));
 |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | //                            builder.appendRow2(R.string.mi_frame_rate, mediaFormat.getString(IjkMediaFormat.KEY_IJK_FRAME_RATE_UI));
 |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | //                            builder.appendRow2(R.string.mi_bit_rate, mediaFormat.getString(IjkMediaFormat.KEY_IJK_BIT_RATE_UI));
 |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | //                            break;
 |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | //                        case ITrackInfo.MEDIA_TRACK_TYPE_AUDIO:
 |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | //                            builder.appendRow2(R.string.mi_codec, mediaFormat.getString(IjkMediaFormat.KEY_IJK_CODEC_LONG_NAME_UI));
 |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | //                            builder.appendRow2(R.string.mi_profile_level, mediaFormat.getString(IjkMediaFormat.KEY_IJK_CODEC_PROFILE_LEVEL_UI));
 |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | //                            builder.appendRow2(R.string.mi_sample_rate, mediaFormat.getString(IjkMediaFormat.KEY_IJK_SAMPLE_RATE_UI));
 |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | //                            builder.appendRow2(R.string.mi_channels, mediaFormat.getString(IjkMediaFormat.KEY_IJK_CHANNEL_UI));
 |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | //                            builder.appendRow2(R.string.mi_bit_rate, mediaFormat.getString(IjkMediaFormat.KEY_IJK_BIT_RATE_UI));
 |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | //                            break;
 |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | //                        default:
 |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | //                            break;
 |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | //                    }
 |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | //                }
 |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | //            }
 |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | //        }
 |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | //
 |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | //        AlertDialog.Builder adBuilder = builder.buildAlertDialogBuilder();
 |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | //        adBuilder.setTitle(R.string.media_information);
 |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | //        adBuilder.setNegativeButton(R.string.close, null);
 |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | //        adBuilder.show();
 |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | //    }
 |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |     private String buildResolution(int width, int height, int sarNum, int sarDen) { |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |         StringBuilder sb = new StringBuilder(); |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |         sb.append(width); |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |         sb.append(" x "); |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |         sb.append(height); |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |         if (sarNum > 1 || sarDen > 1) { |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |             sb.append("["); |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |             sb.append(sarNum); |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |             sb.append(":"); |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |             sb.append(sarDen); |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |             sb.append("]"); |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |         } |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |         return sb.toString(); |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |     } |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |     private String buildTimeMilli(long duration) { |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |         long total_seconds = duration / 1000; |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |         long hours = total_seconds / 3600; |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |         long minutes = (total_seconds % 3600) / 60; |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |         long seconds = total_seconds % 60; |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |         if (duration <= 0) { |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |             return "--:--"; |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |         } |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |         if (hours >= 100) { |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |             return String.format(Locale.US, "%d:%02d:%02d", hours, minutes, seconds); |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |         } else if (hours > 0) { |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |             return String.format(Locale.US, "%02d:%02d:%02d", hours, minutes, seconds); |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |         } else { |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |             return String.format(Locale.US, "%02d:%02d", minutes, seconds); |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |         } |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |     } |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |     private String buildTrackType(int type) { |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | //        Context context = getContext();
 |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | //        switch (type) {
 |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | //            case ITrackInfo.MEDIA_TRACK_TYPE_VIDEO:
 |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | //                return context.getString(R.string.TrackType_video);
 |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | //            case ITrackInfo.MEDIA_TRACK_TYPE_AUDIO:
 |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | //                return context.getString(R.string.TrackType_audio);
 |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | //            case ITrackInfo.MEDIA_TRACK_TYPE_SUBTITLE:
 |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | //                return context.getString(R.string.TrackType_subtitle);
 |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | //            case ITrackInfo.MEDIA_TRACK_TYPE_TIMEDTEXT:
 |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | //                return context.getString(R.string.TrackType_timedtext);
 |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | //            case ITrackInfo.MEDIA_TRACK_TYPE_METADATA:
 |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | //                return context.getString(R.string.TrackType_metadata);
 |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | //            case ITrackInfo.MEDIA_TRACK_TYPE_UNKNOWN:
 |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | //            default:
 |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | //                return context.getString(R.string.TrackType_unknown);
 |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | //        }
 |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |         return "buildTrackType"; |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |     } |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |     private String buildLanguage(String language) { |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |         if (TextUtils.isEmpty(language)) |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |             return "und"; |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |         return language; |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |     } |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |     public ITrackInfo[] getTrackInfo() { |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |         if (mMediaPlayer == null) |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |             return null; |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |         return mMediaPlayer.getTrackInfo(); |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |     } |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |     public void selectTrack(int stream) { |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |         MediaPlayerCompat.selectTrack(mMediaPlayer, stream); |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |     } |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |     public void deselectTrack(int stream) { |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |         MediaPlayerCompat.deselectTrack(mMediaPlayer, stream); |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |     } |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |     public int getSelectedTrack(int trackType) { |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |         return MediaPlayerCompat.getSelectedTrack(mMediaPlayer, trackType); |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |     } |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | } |  |  |  | } | 
			
		
	
	
		
		
			
				
					|  |  | 
 |