├── settings.gradle ├── TvPlayer ├── .gitignore ├── libs │ ├── x86 │ │ ├── libijksdl.so │ │ ├── libijkffmpeg.so │ │ └── libijkplayer.so │ ├── armeabi │ │ ├── libijksdl.so │ │ ├── libijkffmpeg.so │ │ └── libijkplayer.so │ └── armeabi-v7a │ │ ├── libijksdl.so │ │ ├── libijkffmpeg.so │ │ └── libijkplayer.so ├── src │ └── main │ │ ├── res │ │ ├── drawable │ │ │ ├── bg.png │ │ │ ├── down.png │ │ │ ├── load.png │ │ │ ├── mybg.png │ │ │ ├── tvbk.png │ │ │ ├── clearc.png │ │ │ ├── daoru.png │ │ │ ├── diver.png │ │ │ ├── exit_n.png │ │ │ ├── home_bg.jpg │ │ │ ├── huikan.png │ │ │ ├── img_1.png │ │ │ ├── img_2.png │ │ │ ├── img_3.png │ │ │ ├── img_4.png │ │ │ ├── img_5.png │ │ │ ├── line760.png │ │ │ ├── loading.png │ │ │ ├── main_bg.jpg │ │ │ ├── manbtn.png │ │ │ ├── manitem.png │ │ │ ├── manleft.png │ │ │ ├── radio.jpg │ │ │ ├── userid.png │ │ │ ├── exit_bg_n.png │ │ │ ├── home_bggm.jpg │ │ │ ├── jiemahuan.png │ │ │ ├── listleft.png │ │ │ ├── listright.png │ │ │ ├── manlistbg.jpg │ │ │ ├── manright.png │ │ │ ├── menu_fav.png │ │ │ ├── menu_left.png │ │ │ ├── menu_vol.png │ │ │ ├── sxhuantai.png │ │ │ ├── tuchaoshi.png │ │ │ ├── yaoqingtu.png │ │ │ ├── apptuijian.png │ │ │ ├── back_my_fav.png │ │ │ ├── bannerword.png │ │ │ ├── controlman.png │ │ │ ├── exit_play_n.png │ │ │ ├── fileviewbg.jpg │ │ │ ├── ic_launcher.png │ │ │ ├── icon_loading.png │ │ │ ├── login_check.png │ │ │ ├── login_laybg.png │ │ │ ├── login_line.png │ │ │ ├── login_pass.png │ │ │ ├── login_user.png │ │ │ ├── manbtn_press.png │ │ │ ├── menu_right.png │ │ │ ├── menu_scaler.png │ │ │ ├── menu_tvlist.png │ │ │ ├── menu_tvsize.png │ │ │ ├── osd_new_time.png │ │ │ ├── tvmenu_xzt.png │ │ │ ├── video_vol_bg.png │ │ │ ├── wifi_server.png │ │ │ ├── channeltype_bg.png │ │ │ ├── dark_no_shadow.png │ │ │ ├── exit_dialog_bg.jpg │ │ │ ├── fileitem_press.png │ │ │ ├── ic_app_install.png │ │ │ ├── listleft_press.png │ │ │ ├── manitem_press.png │ │ │ ├── manleft_press.png │ │ │ ├── manright_press.png │ │ │ ├── menu_more_one.png │ │ │ ├── menu_more_two.png │ │ │ ├── splash_holder.jpg │ │ │ ├── gdt_splash_logo.png │ │ │ ├── listright_press.png │ │ │ ├── logn_background.jpg │ │ │ ├── osd_new_epg_next.png │ │ │ ├── osd_new_soure_bg.png │ │ │ ├── video_vol_black.png │ │ │ ├── video_vol_whrite.png │ │ │ ├── detail_juji_focused.png │ │ │ ├── osd_new_channle_bg.png │ │ │ ├── osd_new_epg_current.png │ │ │ ├── general_loading_flower.png │ │ │ ├── img_frame_background.jpg │ │ │ ├── live_channel_list_bg.png │ │ │ ├── live_control_main_bg.png │ │ │ ├── detail_juji_selected_focused.png │ │ │ ├── border_color.xml │ │ │ ├── bg_dialog_confirm.xml │ │ │ ├── tv_switch_bg_left.xml │ │ │ ├── tv_switch_bg_right.xml │ │ │ ├── background_button.xml │ │ │ ├── background_circle.xml │ │ │ └── video_loading.xml │ │ ├── mipmap-hdpi │ │ │ └── ic_launcher.png │ │ ├── mipmap-mdpi │ │ │ └── ic_launcher.png │ │ ├── mipmap-xhdpi │ │ │ └── ic_launcher.png │ │ ├── mipmap-xxhdpi │ │ │ └── ic_launcher.png │ │ ├── mipmap-xxxhdpi │ │ │ └── ic_launcher.png │ │ ├── values │ │ │ ├── attr.xml │ │ │ ├── dimens.xml │ │ │ ├── colors.xml │ │ │ ├── styles.xml │ │ │ └── strings.xml │ │ ├── values-w820dp │ │ │ └── dimens.xml │ │ └── layout │ │ │ ├── table_media_info.xml │ │ │ ├── table_media_info_section.xml │ │ │ ├── table_media_info_row1.xml │ │ │ ├── table_media_info_row2.xml │ │ │ ├── detail_menu_item.xml │ │ │ ├── item_menu.xml │ │ │ ├── activity_main.xml │ │ │ ├── layout_menu.xml │ │ │ ├── activity_service_settings.xml │ │ │ ├── dialog_confirm.xml │ │ │ ├── activity_play_rel.xml │ │ │ └── activity_login.xml │ │ ├── java │ │ └── com │ │ │ └── gxf │ │ │ └── liveplay │ │ │ ├── update │ │ │ ├── CallBack.java │ │ │ ├── ConfirmDialog.java │ │ │ ├── UpdateAppReceiver.java │ │ │ ├── DownloadAppUtils.java │ │ │ └── UpdateAppUtils.java │ │ │ ├── Constants.java │ │ │ ├── BootBroadcastReceiver.java │ │ │ ├── ijkplayer │ │ │ ├── media │ │ │ │ ├── IMediaController.java │ │ │ │ ├── IRenderView.java │ │ │ │ ├── InfoHudViewHolder.java │ │ │ │ ├── TableLayoutBinder.java │ │ │ │ └── SurfaceRenderView.java │ │ │ ├── services │ │ │ │ └── MediaPlayerService.java │ │ │ └── Settings.java │ │ │ ├── MainActivityOffline.java │ │ │ ├── MainActivity.java │ │ │ ├── ServiceSettings.java │ │ │ ├── PlayListCache.java │ │ │ ├── DeviceUtils.java │ │ │ └── LoginActivity.java │ │ └── AndroidManifest.xml ├── proguard-rules.pro └── build.gradle ├── screenshot ├── 1.jpeg ├── 2.jpeg └── 3.jpeg ├── gradle └── wrapper │ ├── gradle-wrapper.jar │ └── gradle-wrapper.properties ├── .gitignore ├── Ijkplayer ├── src │ └── main │ │ ├── java │ │ └── tv │ │ │ └── danmaku │ │ │ └── ijk │ │ │ └── media │ │ │ └── player │ │ │ ├── ffmpeg │ │ │ └── FFmpegApi.java │ │ │ ├── pragma │ │ │ ├── Pragma.java │ │ │ └── DebugLog.java │ │ │ ├── IjkLibLoader.java │ │ │ ├── exceptions │ │ │ └── IjkMediaException.java │ │ │ ├── ISurfaceTextureHost.java │ │ │ ├── MediaInfo.java │ │ │ ├── ISurfaceTextureHolder.java │ │ │ ├── misc │ │ │ ├── IMediaFormat.java │ │ │ ├── ITrackInfo.java │ │ │ ├── AndroidMediaFormat.java │ │ │ ├── IjkTrackInfo.java │ │ │ ├── AndroidTrackInfo.java │ │ │ └── IjkMediaFormat.java │ │ │ ├── annotations │ │ │ ├── AccessedByNative.java │ │ │ └── CalledByNative.java │ │ │ ├── BaseMediaPlayer.java │ │ │ ├── TextureMediaPlayer.java │ │ │ ├── AbstractMediaPlayer.java │ │ │ ├── SimpleMediaPlayer.java │ │ │ └── IMediaPlayer.java │ │ ├── AndroidManifest.xml │ │ └── res │ │ └── values │ │ ├── strings.xml │ │ └── strings_pref.xml ├── proguard-rules.pro └── build.gradle ├── gradle.properties ├── README.md ├── gradlew.bat └── gradlew /settings.gradle: -------------------------------------------------------------------------------- 1 | include "TvPlayer", "Ijkplayer" 2 | -------------------------------------------------------------------------------- /TvPlayer/.gitignore: -------------------------------------------------------------------------------- 1 | /build 2 | *.iml 3 | .idea 4 | /.gradle 5 | -------------------------------------------------------------------------------- /screenshot/1.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zero-edge-code/TvPlayer/HEAD/screenshot/1.jpeg -------------------------------------------------------------------------------- /screenshot/2.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zero-edge-code/TvPlayer/HEAD/screenshot/2.jpeg -------------------------------------------------------------------------------- /screenshot/3.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zero-edge-code/TvPlayer/HEAD/screenshot/3.jpeg -------------------------------------------------------------------------------- /TvPlayer/libs/x86/libijksdl.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zero-edge-code/TvPlayer/HEAD/TvPlayer/libs/x86/libijksdl.so -------------------------------------------------------------------------------- /TvPlayer/libs/armeabi/libijksdl.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zero-edge-code/TvPlayer/HEAD/TvPlayer/libs/armeabi/libijksdl.so -------------------------------------------------------------------------------- /TvPlayer/libs/x86/libijkffmpeg.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zero-edge-code/TvPlayer/HEAD/TvPlayer/libs/x86/libijkffmpeg.so -------------------------------------------------------------------------------- /TvPlayer/libs/x86/libijkplayer.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zero-edge-code/TvPlayer/HEAD/TvPlayer/libs/x86/libijkplayer.so -------------------------------------------------------------------------------- /gradle/wrapper/gradle-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zero-edge-code/TvPlayer/HEAD/gradle/wrapper/gradle-wrapper.jar -------------------------------------------------------------------------------- /TvPlayer/libs/armeabi/libijkffmpeg.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zero-edge-code/TvPlayer/HEAD/TvPlayer/libs/armeabi/libijkffmpeg.so -------------------------------------------------------------------------------- /TvPlayer/libs/armeabi/libijkplayer.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zero-edge-code/TvPlayer/HEAD/TvPlayer/libs/armeabi/libijkplayer.so -------------------------------------------------------------------------------- /TvPlayer/src/main/res/drawable/bg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zero-edge-code/TvPlayer/HEAD/TvPlayer/src/main/res/drawable/bg.png -------------------------------------------------------------------------------- /TvPlayer/libs/armeabi-v7a/libijksdl.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zero-edge-code/TvPlayer/HEAD/TvPlayer/libs/armeabi-v7a/libijksdl.so -------------------------------------------------------------------------------- /TvPlayer/src/main/res/drawable/down.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zero-edge-code/TvPlayer/HEAD/TvPlayer/src/main/res/drawable/down.png -------------------------------------------------------------------------------- /TvPlayer/src/main/res/drawable/load.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zero-edge-code/TvPlayer/HEAD/TvPlayer/src/main/res/drawable/load.png -------------------------------------------------------------------------------- /TvPlayer/src/main/res/drawable/mybg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zero-edge-code/TvPlayer/HEAD/TvPlayer/src/main/res/drawable/mybg.png -------------------------------------------------------------------------------- /TvPlayer/src/main/res/drawable/tvbk.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zero-edge-code/TvPlayer/HEAD/TvPlayer/src/main/res/drawable/tvbk.png -------------------------------------------------------------------------------- /TvPlayer/libs/armeabi-v7a/libijkffmpeg.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zero-edge-code/TvPlayer/HEAD/TvPlayer/libs/armeabi-v7a/libijkffmpeg.so -------------------------------------------------------------------------------- /TvPlayer/libs/armeabi-v7a/libijkplayer.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zero-edge-code/TvPlayer/HEAD/TvPlayer/libs/armeabi-v7a/libijkplayer.so -------------------------------------------------------------------------------- /TvPlayer/src/main/res/drawable/clearc.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zero-edge-code/TvPlayer/HEAD/TvPlayer/src/main/res/drawable/clearc.png -------------------------------------------------------------------------------- /TvPlayer/src/main/res/drawable/daoru.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zero-edge-code/TvPlayer/HEAD/TvPlayer/src/main/res/drawable/daoru.png -------------------------------------------------------------------------------- /TvPlayer/src/main/res/drawable/diver.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zero-edge-code/TvPlayer/HEAD/TvPlayer/src/main/res/drawable/diver.png -------------------------------------------------------------------------------- /TvPlayer/src/main/res/drawable/exit_n.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zero-edge-code/TvPlayer/HEAD/TvPlayer/src/main/res/drawable/exit_n.png -------------------------------------------------------------------------------- /TvPlayer/src/main/res/drawable/home_bg.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zero-edge-code/TvPlayer/HEAD/TvPlayer/src/main/res/drawable/home_bg.jpg -------------------------------------------------------------------------------- /TvPlayer/src/main/res/drawable/huikan.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zero-edge-code/TvPlayer/HEAD/TvPlayer/src/main/res/drawable/huikan.png -------------------------------------------------------------------------------- /TvPlayer/src/main/res/drawable/img_1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zero-edge-code/TvPlayer/HEAD/TvPlayer/src/main/res/drawable/img_1.png -------------------------------------------------------------------------------- /TvPlayer/src/main/res/drawable/img_2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zero-edge-code/TvPlayer/HEAD/TvPlayer/src/main/res/drawable/img_2.png -------------------------------------------------------------------------------- /TvPlayer/src/main/res/drawable/img_3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zero-edge-code/TvPlayer/HEAD/TvPlayer/src/main/res/drawable/img_3.png -------------------------------------------------------------------------------- /TvPlayer/src/main/res/drawable/img_4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zero-edge-code/TvPlayer/HEAD/TvPlayer/src/main/res/drawable/img_4.png -------------------------------------------------------------------------------- /TvPlayer/src/main/res/drawable/img_5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zero-edge-code/TvPlayer/HEAD/TvPlayer/src/main/res/drawable/img_5.png -------------------------------------------------------------------------------- /TvPlayer/src/main/res/drawable/line760.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zero-edge-code/TvPlayer/HEAD/TvPlayer/src/main/res/drawable/line760.png -------------------------------------------------------------------------------- /TvPlayer/src/main/res/drawable/loading.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zero-edge-code/TvPlayer/HEAD/TvPlayer/src/main/res/drawable/loading.png -------------------------------------------------------------------------------- /TvPlayer/src/main/res/drawable/main_bg.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zero-edge-code/TvPlayer/HEAD/TvPlayer/src/main/res/drawable/main_bg.jpg -------------------------------------------------------------------------------- /TvPlayer/src/main/res/drawable/manbtn.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zero-edge-code/TvPlayer/HEAD/TvPlayer/src/main/res/drawable/manbtn.png -------------------------------------------------------------------------------- /TvPlayer/src/main/res/drawable/manitem.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zero-edge-code/TvPlayer/HEAD/TvPlayer/src/main/res/drawable/manitem.png -------------------------------------------------------------------------------- /TvPlayer/src/main/res/drawable/manleft.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zero-edge-code/TvPlayer/HEAD/TvPlayer/src/main/res/drawable/manleft.png -------------------------------------------------------------------------------- /TvPlayer/src/main/res/drawable/radio.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zero-edge-code/TvPlayer/HEAD/TvPlayer/src/main/res/drawable/radio.jpg -------------------------------------------------------------------------------- /TvPlayer/src/main/res/drawable/userid.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zero-edge-code/TvPlayer/HEAD/TvPlayer/src/main/res/drawable/userid.png -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | *.iml 2 | .gradle 3 | /local.properties 4 | /.idea/workspace.xml 5 | /.idea/libraries 6 | .DS_Store 7 | /build 8 | /captures 9 | -------------------------------------------------------------------------------- /TvPlayer/src/main/res/drawable/exit_bg_n.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zero-edge-code/TvPlayer/HEAD/TvPlayer/src/main/res/drawable/exit_bg_n.png -------------------------------------------------------------------------------- /TvPlayer/src/main/res/drawable/home_bggm.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zero-edge-code/TvPlayer/HEAD/TvPlayer/src/main/res/drawable/home_bggm.jpg -------------------------------------------------------------------------------- /TvPlayer/src/main/res/drawable/jiemahuan.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zero-edge-code/TvPlayer/HEAD/TvPlayer/src/main/res/drawable/jiemahuan.png -------------------------------------------------------------------------------- /TvPlayer/src/main/res/drawable/listleft.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zero-edge-code/TvPlayer/HEAD/TvPlayer/src/main/res/drawable/listleft.png -------------------------------------------------------------------------------- /TvPlayer/src/main/res/drawable/listright.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zero-edge-code/TvPlayer/HEAD/TvPlayer/src/main/res/drawable/listright.png -------------------------------------------------------------------------------- /TvPlayer/src/main/res/drawable/manlistbg.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zero-edge-code/TvPlayer/HEAD/TvPlayer/src/main/res/drawable/manlistbg.jpg -------------------------------------------------------------------------------- /TvPlayer/src/main/res/drawable/manright.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zero-edge-code/TvPlayer/HEAD/TvPlayer/src/main/res/drawable/manright.png -------------------------------------------------------------------------------- /TvPlayer/src/main/res/drawable/menu_fav.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zero-edge-code/TvPlayer/HEAD/TvPlayer/src/main/res/drawable/menu_fav.png -------------------------------------------------------------------------------- /TvPlayer/src/main/res/drawable/menu_left.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zero-edge-code/TvPlayer/HEAD/TvPlayer/src/main/res/drawable/menu_left.png -------------------------------------------------------------------------------- /TvPlayer/src/main/res/drawable/menu_vol.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zero-edge-code/TvPlayer/HEAD/TvPlayer/src/main/res/drawable/menu_vol.png -------------------------------------------------------------------------------- /TvPlayer/src/main/res/drawable/sxhuantai.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zero-edge-code/TvPlayer/HEAD/TvPlayer/src/main/res/drawable/sxhuantai.png -------------------------------------------------------------------------------- /TvPlayer/src/main/res/drawable/tuchaoshi.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zero-edge-code/TvPlayer/HEAD/TvPlayer/src/main/res/drawable/tuchaoshi.png -------------------------------------------------------------------------------- /TvPlayer/src/main/res/drawable/yaoqingtu.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zero-edge-code/TvPlayer/HEAD/TvPlayer/src/main/res/drawable/yaoqingtu.png -------------------------------------------------------------------------------- /TvPlayer/src/main/res/drawable/apptuijian.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zero-edge-code/TvPlayer/HEAD/TvPlayer/src/main/res/drawable/apptuijian.png -------------------------------------------------------------------------------- /TvPlayer/src/main/res/drawable/back_my_fav.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zero-edge-code/TvPlayer/HEAD/TvPlayer/src/main/res/drawable/back_my_fav.png -------------------------------------------------------------------------------- /TvPlayer/src/main/res/drawable/bannerword.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zero-edge-code/TvPlayer/HEAD/TvPlayer/src/main/res/drawable/bannerword.png -------------------------------------------------------------------------------- /TvPlayer/src/main/res/drawable/controlman.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zero-edge-code/TvPlayer/HEAD/TvPlayer/src/main/res/drawable/controlman.png -------------------------------------------------------------------------------- /TvPlayer/src/main/res/drawable/exit_play_n.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zero-edge-code/TvPlayer/HEAD/TvPlayer/src/main/res/drawable/exit_play_n.png -------------------------------------------------------------------------------- /TvPlayer/src/main/res/drawable/fileviewbg.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zero-edge-code/TvPlayer/HEAD/TvPlayer/src/main/res/drawable/fileviewbg.jpg -------------------------------------------------------------------------------- /TvPlayer/src/main/res/drawable/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zero-edge-code/TvPlayer/HEAD/TvPlayer/src/main/res/drawable/ic_launcher.png -------------------------------------------------------------------------------- /TvPlayer/src/main/res/drawable/icon_loading.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zero-edge-code/TvPlayer/HEAD/TvPlayer/src/main/res/drawable/icon_loading.png -------------------------------------------------------------------------------- /TvPlayer/src/main/res/drawable/login_check.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zero-edge-code/TvPlayer/HEAD/TvPlayer/src/main/res/drawable/login_check.png -------------------------------------------------------------------------------- /TvPlayer/src/main/res/drawable/login_laybg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zero-edge-code/TvPlayer/HEAD/TvPlayer/src/main/res/drawable/login_laybg.png -------------------------------------------------------------------------------- /TvPlayer/src/main/res/drawable/login_line.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zero-edge-code/TvPlayer/HEAD/TvPlayer/src/main/res/drawable/login_line.png -------------------------------------------------------------------------------- /TvPlayer/src/main/res/drawable/login_pass.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zero-edge-code/TvPlayer/HEAD/TvPlayer/src/main/res/drawable/login_pass.png -------------------------------------------------------------------------------- /TvPlayer/src/main/res/drawable/login_user.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zero-edge-code/TvPlayer/HEAD/TvPlayer/src/main/res/drawable/login_user.png -------------------------------------------------------------------------------- /TvPlayer/src/main/res/drawable/manbtn_press.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zero-edge-code/TvPlayer/HEAD/TvPlayer/src/main/res/drawable/manbtn_press.png -------------------------------------------------------------------------------- /TvPlayer/src/main/res/drawable/menu_right.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zero-edge-code/TvPlayer/HEAD/TvPlayer/src/main/res/drawable/menu_right.png -------------------------------------------------------------------------------- /TvPlayer/src/main/res/drawable/menu_scaler.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zero-edge-code/TvPlayer/HEAD/TvPlayer/src/main/res/drawable/menu_scaler.png -------------------------------------------------------------------------------- /TvPlayer/src/main/res/drawable/menu_tvlist.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zero-edge-code/TvPlayer/HEAD/TvPlayer/src/main/res/drawable/menu_tvlist.png -------------------------------------------------------------------------------- /TvPlayer/src/main/res/drawable/menu_tvsize.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zero-edge-code/TvPlayer/HEAD/TvPlayer/src/main/res/drawable/menu_tvsize.png -------------------------------------------------------------------------------- /TvPlayer/src/main/res/drawable/osd_new_time.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zero-edge-code/TvPlayer/HEAD/TvPlayer/src/main/res/drawable/osd_new_time.png -------------------------------------------------------------------------------- /TvPlayer/src/main/res/drawable/tvmenu_xzt.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zero-edge-code/TvPlayer/HEAD/TvPlayer/src/main/res/drawable/tvmenu_xzt.png -------------------------------------------------------------------------------- /TvPlayer/src/main/res/drawable/video_vol_bg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zero-edge-code/TvPlayer/HEAD/TvPlayer/src/main/res/drawable/video_vol_bg.png -------------------------------------------------------------------------------- /TvPlayer/src/main/res/drawable/wifi_server.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zero-edge-code/TvPlayer/HEAD/TvPlayer/src/main/res/drawable/wifi_server.png -------------------------------------------------------------------------------- /TvPlayer/src/main/res/drawable/channeltype_bg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zero-edge-code/TvPlayer/HEAD/TvPlayer/src/main/res/drawable/channeltype_bg.png -------------------------------------------------------------------------------- /TvPlayer/src/main/res/drawable/dark_no_shadow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zero-edge-code/TvPlayer/HEAD/TvPlayer/src/main/res/drawable/dark_no_shadow.png -------------------------------------------------------------------------------- /TvPlayer/src/main/res/drawable/exit_dialog_bg.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zero-edge-code/TvPlayer/HEAD/TvPlayer/src/main/res/drawable/exit_dialog_bg.jpg -------------------------------------------------------------------------------- /TvPlayer/src/main/res/drawable/fileitem_press.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zero-edge-code/TvPlayer/HEAD/TvPlayer/src/main/res/drawable/fileitem_press.png -------------------------------------------------------------------------------- /TvPlayer/src/main/res/drawable/ic_app_install.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zero-edge-code/TvPlayer/HEAD/TvPlayer/src/main/res/drawable/ic_app_install.png -------------------------------------------------------------------------------- /TvPlayer/src/main/res/drawable/listleft_press.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zero-edge-code/TvPlayer/HEAD/TvPlayer/src/main/res/drawable/listleft_press.png -------------------------------------------------------------------------------- /TvPlayer/src/main/res/drawable/manitem_press.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zero-edge-code/TvPlayer/HEAD/TvPlayer/src/main/res/drawable/manitem_press.png -------------------------------------------------------------------------------- /TvPlayer/src/main/res/drawable/manleft_press.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zero-edge-code/TvPlayer/HEAD/TvPlayer/src/main/res/drawable/manleft_press.png -------------------------------------------------------------------------------- /TvPlayer/src/main/res/drawable/manright_press.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zero-edge-code/TvPlayer/HEAD/TvPlayer/src/main/res/drawable/manright_press.png -------------------------------------------------------------------------------- /TvPlayer/src/main/res/drawable/menu_more_one.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zero-edge-code/TvPlayer/HEAD/TvPlayer/src/main/res/drawable/menu_more_one.png -------------------------------------------------------------------------------- /TvPlayer/src/main/res/drawable/menu_more_two.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zero-edge-code/TvPlayer/HEAD/TvPlayer/src/main/res/drawable/menu_more_two.png -------------------------------------------------------------------------------- /TvPlayer/src/main/res/drawable/splash_holder.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zero-edge-code/TvPlayer/HEAD/TvPlayer/src/main/res/drawable/splash_holder.jpg -------------------------------------------------------------------------------- /TvPlayer/src/main/res/mipmap-hdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zero-edge-code/TvPlayer/HEAD/TvPlayer/src/main/res/mipmap-hdpi/ic_launcher.png -------------------------------------------------------------------------------- /TvPlayer/src/main/res/mipmap-mdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zero-edge-code/TvPlayer/HEAD/TvPlayer/src/main/res/mipmap-mdpi/ic_launcher.png -------------------------------------------------------------------------------- /TvPlayer/src/main/res/drawable/gdt_splash_logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zero-edge-code/TvPlayer/HEAD/TvPlayer/src/main/res/drawable/gdt_splash_logo.png -------------------------------------------------------------------------------- /TvPlayer/src/main/res/drawable/listright_press.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zero-edge-code/TvPlayer/HEAD/TvPlayer/src/main/res/drawable/listright_press.png -------------------------------------------------------------------------------- /TvPlayer/src/main/res/drawable/logn_background.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zero-edge-code/TvPlayer/HEAD/TvPlayer/src/main/res/drawable/logn_background.jpg -------------------------------------------------------------------------------- /TvPlayer/src/main/res/drawable/osd_new_epg_next.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zero-edge-code/TvPlayer/HEAD/TvPlayer/src/main/res/drawable/osd_new_epg_next.png -------------------------------------------------------------------------------- /TvPlayer/src/main/res/drawable/osd_new_soure_bg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zero-edge-code/TvPlayer/HEAD/TvPlayer/src/main/res/drawable/osd_new_soure_bg.png -------------------------------------------------------------------------------- /TvPlayer/src/main/res/drawable/video_vol_black.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zero-edge-code/TvPlayer/HEAD/TvPlayer/src/main/res/drawable/video_vol_black.png -------------------------------------------------------------------------------- /TvPlayer/src/main/res/drawable/video_vol_whrite.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zero-edge-code/TvPlayer/HEAD/TvPlayer/src/main/res/drawable/video_vol_whrite.png -------------------------------------------------------------------------------- /TvPlayer/src/main/res/mipmap-xhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zero-edge-code/TvPlayer/HEAD/TvPlayer/src/main/res/mipmap-xhdpi/ic_launcher.png -------------------------------------------------------------------------------- /TvPlayer/src/main/res/mipmap-xxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zero-edge-code/TvPlayer/HEAD/TvPlayer/src/main/res/mipmap-xxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /TvPlayer/src/main/res/mipmap-xxxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zero-edge-code/TvPlayer/HEAD/TvPlayer/src/main/res/mipmap-xxxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /TvPlayer/src/main/res/drawable/detail_juji_focused.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zero-edge-code/TvPlayer/HEAD/TvPlayer/src/main/res/drawable/detail_juji_focused.png -------------------------------------------------------------------------------- /TvPlayer/src/main/res/drawable/osd_new_channle_bg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zero-edge-code/TvPlayer/HEAD/TvPlayer/src/main/res/drawable/osd_new_channle_bg.png -------------------------------------------------------------------------------- /TvPlayer/src/main/res/drawable/osd_new_epg_current.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zero-edge-code/TvPlayer/HEAD/TvPlayer/src/main/res/drawable/osd_new_epg_current.png -------------------------------------------------------------------------------- /TvPlayer/src/main/res/drawable/general_loading_flower.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zero-edge-code/TvPlayer/HEAD/TvPlayer/src/main/res/drawable/general_loading_flower.png -------------------------------------------------------------------------------- /TvPlayer/src/main/res/drawable/img_frame_background.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zero-edge-code/TvPlayer/HEAD/TvPlayer/src/main/res/drawable/img_frame_background.jpg -------------------------------------------------------------------------------- /TvPlayer/src/main/res/drawable/live_channel_list_bg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zero-edge-code/TvPlayer/HEAD/TvPlayer/src/main/res/drawable/live_channel_list_bg.png -------------------------------------------------------------------------------- /TvPlayer/src/main/res/drawable/live_control_main_bg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zero-edge-code/TvPlayer/HEAD/TvPlayer/src/main/res/drawable/live_control_main_bg.png -------------------------------------------------------------------------------- /TvPlayer/src/main/res/drawable/detail_juji_selected_focused.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zero-edge-code/TvPlayer/HEAD/TvPlayer/src/main/res/drawable/detail_juji_selected_focused.png -------------------------------------------------------------------------------- /Ijkplayer/src/main/java/tv/danmaku/ijk/media/player/ffmpeg/FFmpegApi.java: -------------------------------------------------------------------------------- 1 | package tv.danmaku.ijk.media.player.ffmpeg; 2 | 3 | public class FFmpegApi { 4 | public static native String av_base64_encode(byte in[]); 5 | } 6 | -------------------------------------------------------------------------------- /Ijkplayer/src/main/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 3 | 4 | 6 | 7 | -------------------------------------------------------------------------------- /TvPlayer/src/main/java/com/gxf/liveplay/update/CallBack.java: -------------------------------------------------------------------------------- 1 | package com.gxf.liveplay.update; 2 | 3 | /** 4 | * Created by gongxufan on 2017/9/6. 5 | */ 6 | 7 | public interface CallBack { 8 | public void callback(int position); 9 | } 10 | -------------------------------------------------------------------------------- /gradle/wrapper/gradle-wrapper.properties: -------------------------------------------------------------------------------- 1 | #Sat Oct 28 01:20:16 CST 2017 2 | distributionBase=GRADLE_USER_HOME 3 | distributionPath=wrapper/dists 4 | zipStoreBase=GRADLE_USER_HOME 5 | zipStorePath=wrapper/dists 6 | distributionUrl=https\://services.gradle.org/distributions/gradle-4.1-all.zip 7 | -------------------------------------------------------------------------------- /TvPlayer/src/main/res/values/attr.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /TvPlayer/src/main/res/values/dimens.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 16dp 4 | 16dp 5 | 16dp 6 | 7 | -------------------------------------------------------------------------------- /TvPlayer/src/main/res/drawable/border_color.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 7 | 8 | -------------------------------------------------------------------------------- /TvPlayer/src/main/res/drawable/bg_dialog_confirm.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /TvPlayer/src/main/res/values-w820dp/dimens.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 64dp 6 | 7 | -------------------------------------------------------------------------------- /TvPlayer/src/main/res/drawable/tv_switch_bg_left.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | 6 | 8 | 9 | -------------------------------------------------------------------------------- /TvPlayer/src/main/res/drawable/tv_switch_bg_right.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | 7 | 8 | -------------------------------------------------------------------------------- /TvPlayer/src/main/res/layout/table_media_info.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /TvPlayer/src/main/res/drawable/background_button.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 10 | 13 | -------------------------------------------------------------------------------- /TvPlayer/src/main/res/layout/table_media_info_section.xml: -------------------------------------------------------------------------------- 1 | 2 | 7 | 8 | 14 | 15 | -------------------------------------------------------------------------------- /TvPlayer/src/main/res/values/colors.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | #3F51B5 4 | #303F9F 5 | #FF4081 6 | 7 | #FFFFFF 8 | #3F51B5 9 | #87CEFA 10 | #ADFF2F 11 | #000000 12 | #33000000 13 | 14 | -------------------------------------------------------------------------------- /TvPlayer/src/main/java/com/gxf/liveplay/Constants.java: -------------------------------------------------------------------------------- 1 | package com.gxf.liveplay; 2 | 3 | public class Constants { 4 | public static final String APPID = "1106310717"; 5 | public static final String BannerPosID = "9079537218417626401"; 6 | public static final String InterteristalPosID = "8575134060152130849"; 7 | public static final String SplashPosID = "8863364436303842593"; 8 | public static final String NativePosID = "5000709048439488"; 9 | public static final String NativeVideoPosID = "2050206699818455"; 10 | public static final String NativeExpressPosID = "7030020348049331"; 11 | } 12 | -------------------------------------------------------------------------------- /TvPlayer/src/main/res/drawable/background_circle.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | 7 | 12 | 13 | 18 | 19 | -------------------------------------------------------------------------------- /TvPlayer/proguard-rules.pro: -------------------------------------------------------------------------------- 1 | # Add project specific ProGuard rules here. 2 | # By default, the flags in this file are appended to flags specified 3 | # in D:\Studio SDK/tools/proguard/proguard-android.txt 4 | # You can edit the include path and order by changing the proguardFiles 5 | # directive in build.gradle. 6 | # 7 | # For more details, see 8 | # http://developer.android.com/guide/developing/tools/proguard.html 9 | 10 | # Add any project specific keep options here: 11 | 12 | # If your project uses WebView with JS, uncomment the following 13 | # and specify the fully qualified class name to the JavaScript interface 14 | # class: 15 | #-keepclassmembers class fqcn.of.javascript.interface.for.webview { 16 | # public *; 17 | #} 18 | -------------------------------------------------------------------------------- /Ijkplayer/proguard-rules.pro: -------------------------------------------------------------------------------- 1 | # Add project specific ProGuard rules here. 2 | # By default, the flags in this file are appended to flags specified 3 | # in /usr/local/softs/android-sdk-linux/tools/proguard/proguard-android.txt 4 | # You can edit the include path and order by changing the proguardFiles 5 | # directive in build.gradle. 6 | # 7 | # For more details, see 8 | # http://developer.android.com/guide/developing/tools/proguard.html 9 | 10 | # Add any project specific keep options here: 11 | 12 | # If your project uses WebView with JS, uncomment the following 13 | # and specify the fully qualified class name to the JavaScript interface 14 | # class: 15 | #-keepclassmembers class fqcn.of.javascript.interface.for.webview { 16 | # public *; 17 | #} 18 | -------------------------------------------------------------------------------- /TvPlayer/src/main/res/layout/table_media_info_row1.xml: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | 12 | 13 | 20 | 21 | -------------------------------------------------------------------------------- /TvPlayer/src/main/res/drawable/video_loading.xml: -------------------------------------------------------------------------------- 1 | 2 | 8 | 13 | 20 | 21 | 22 | -------------------------------------------------------------------------------- /TvPlayer/src/main/res/values/styles.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 10 | 11 | 15 | 16 | 29 | 30 | ServiceSettings 31 | 32 | -------------------------------------------------------------------------------- /TvPlayer/src/main/java/com/gxf/liveplay/update/ConfirmDialog.java: -------------------------------------------------------------------------------- 1 | package com.gxf.liveplay.update; 2 | 3 | import android.app.Dialog; 4 | import android.content.Context; 5 | import android.view.LayoutInflater; 6 | import android.view.View; 7 | import android.widget.Button; 8 | import android.widget.TextView; 9 | 10 | import com.gxf.liveplay.R; 11 | 12 | 13 | public class ConfirmDialog extends Dialog { 14 | 15 | CallBack callback; 16 | private TextView content; 17 | private Button sureBtn; 18 | private Button cancleBtn; 19 | 20 | public ConfirmDialog(Context context, CallBack callback) { 21 | super(context, R.style.CustomDialog); 22 | this.callback = callback; 23 | setCustomDialog(); 24 | } 25 | 26 | private void setCustomDialog() { 27 | View mView = LayoutInflater.from(getContext()).inflate(R.layout.dialog_confirm, null); 28 | sureBtn = (Button)mView.findViewById(R.id.dialog_confirm_sure); 29 | cancleBtn = (Button)mView.findViewById(R.id.dialog_confirm_cancle); 30 | content = (TextView) mView.findViewById(R.id.dialog_confirm_title); 31 | 32 | 33 | sureBtn.setOnClickListener(new View.OnClickListener() { 34 | @Override 35 | public void onClick(View v) { 36 | callback.callback(1); 37 | ConfirmDialog.this.cancel(); 38 | } 39 | }); 40 | cancleBtn.setOnClickListener(new View.OnClickListener() { 41 | @Override 42 | public void onClick(View v) { 43 | callback.callback(0); 44 | ConfirmDialog.this.cancel(); 45 | } 46 | }); 47 | super.setContentView(mView); 48 | } 49 | 50 | 51 | public ConfirmDialog setContent(String s){ 52 | content.setText(s); 53 | return this; 54 | } 55 | 56 | 57 | } 58 | -------------------------------------------------------------------------------- /TvPlayer/src/main/java/com/gxf/liveplay/MainActivityOffline.java: -------------------------------------------------------------------------------- 1 | package com.gxf.liveplay; 2 | 3 | import android.app.Activity; 4 | import android.content.Context; 5 | import android.content.Intent; 6 | import android.content.SharedPreferences; 7 | import android.os.Bundle; 8 | import android.widget.Toast; 9 | 10 | /** 11 | * splash 12 | * 启动登录检测 13 | */ 14 | public class MainActivityOffline extends Activity { 15 | private final int SPLASH_DISPLAY_LENGHT = 1000; // 两秒后进入系统 16 | private boolean isUpdateChecked = false; 17 | public void checkLogin(){ 18 | SharedPreferences userSettings = getSharedPreferences("auth", Context.MODE_PRIVATE); 19 | final String lastVedioUrl = userSettings.getString("lastVedioUrl", "none"); 20 | final Toast toast = Toast.makeText(MainActivityOffline.this, "系统初始化失败...", Toast.LENGTH_SHORT); 21 | // 开启一个子线程,进行网络操作,等待有返回结果,使用handler通知UI 22 | new Thread(new Runnable() { 23 | @Override 24 | public void run() { 25 | try { 26 | PlayListCache.initPlayInfo(null,null); 27 | String url = lastVedioUrl; 28 | if (url.equals("none")) 29 | url = PlayListCache.playListMap.get(PlayListCache.playListMap.keySet().iterator().next()); 30 | LiveActivityRel.activityStart(MainActivityOffline.this, url); 31 | MainActivityOffline.this.finish(); 32 | } catch (Exception e) { 33 | toast.show(); 34 | e.printStackTrace(); 35 | } 36 | } 37 | }).start(); 38 | } 39 | @Override 40 | protected void onCreate(Bundle savedInstanceState) { 41 | super.onCreate(savedInstanceState); 42 | setContentView(R.layout.activity_main); 43 | checkLogin(); 44 | } 45 | } 46 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # TvPlayer 2 | 3 | 1,android智能电视播放器,可以播放各电视台节目,播放基于ijkplayer的实现 4 | 5 | 2,测试的源地址可能失效,如需测试可以自己更换播放源。HttpUtils.getOfflinePlayList()返回的是测试源地址 6 | 7 | 3,项目有MainActivityOffline和MainActivity,MainActivityOffline是离线使用的,MainActivity涉及到登录和节目列表获取 8 | 9 | 4,编译环境:Android Studio3.0,jdk8 10 | 11 | 本项目中的播放源地址可能会失效,如需测试需要更改可用的播放源,具体代码在com.gxf.liveplay.HttpUtils#getOfflinePlayList,数据格式如下: 12 | 13 | ``` 14 | [   15 | { 16 | "group": "省内频道", 17 | "list": [ 18 | { 19 | "湖南都市": "http://220.248.175.231:6610/001/2/ch00000090990000001049/index.m3u8?virtualDomain=001.live_hls.zte.com" 20 | }, 21 | { 22 | "湖南经视": "http://220.248.175.230:6610/001/2/ch00000090990000001052/index.m3u8?virtualDomain=001.live_hls.zte.com" 23 | } 24 | ] 25 | }, 26 | { 27 | "group": "其他频道", 28 | "list": [ 29 | { 30 | "安徽卫视": "http://220.248.175.230:6610/001/2/ch00000090990000001024/index.m3u8?virtualDomain=001.live_hls.zte.com" 31 | }, 32 | { 33 | "北京卫视": "http://220.248.175.230:6610/001/2/ch00000090990000001025/index.m3u8?virtualDomain=001.live_hls.zte.com" 34 | } 35 | ] 36 | }, 37 | { 38 | "group": "高清频道", 39 | "list": [ 40 | { 41 | "CCTV1综合HD": "http://220.248.175.230:6610/001/2/ch00000090990000001075/index.m3u8?virtualDomain=001.live_hls.zte.com" 42 | }, 43 | { 44 | "湖南经视HD": "http://220.248.175.230:6610/001/2/ch00000090990000001080/index.m3u8?virtualDomain=001.live_hls.zte.com" 45 | } 46 | ] 47 | }, 48 | { 49 | "group": "央视频道", 50 | "list": [ 51 | { 52 | "CCTV1综合": "http://220.248.175.230:6610/001/2/ch00000090990000001075/index.m3u8?virtualDomain=001.live_hls.zte.com" 53 | }, 54 | { 55 | "CCTV证券": "http://220.248.175.230:6610/001/2/ch00000090990000001133/index.m3u8?virtualDomain=001.live_hls.zte.com" 56 | } 57 | ] 58 | } 59 | ]   60 | ``` 61 | # screenshot 62 | ![screenshot](https://github.com/gongxufan/TvPlayer/blob/master/screenshot/3.jpeg?raw=true) 63 | -------------------------------------------------------------------------------- /TvPlayer/build.gradle: -------------------------------------------------------------------------------- 1 | apply plugin: 'com.android.application' 2 | 3 | android { 4 | compileSdkVersion 24 5 | buildToolsVersion '26.0.2' 6 | 7 | defaultConfig { 8 | applicationId "com.gxf.liveplay" 9 | minSdkVersion 17 10 | targetSdkVersion 22 11 | versionCode 9 12 | versionName "1.9" 13 | } 14 | buildTypes { 15 | release { 16 | minifyEnabled false 17 | proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' 18 | } 19 | } 20 | lintOptions { 21 | checkReleaseBuilds false 22 | // Or, if you prefer, you can continue to checkforerrorsinrelease builds, 23 | // but continue the build even whenerrorsarefound: 24 | abortOnError false 25 | } 26 | sourceSets { 27 | main { 28 | jniLibs.srcDir 'libs' 29 | } 30 | 31 | // Move the tests to tests/java, tests/res, etc... 32 | instrumentTest.setRoot('tests') 33 | 34 | // Move the build types to build-types/ 35 | // For instance, build-types/debug/java, build-types/debug/AndroidManifest.xml, ... 36 | // This moves them out of them default location under src//... which would 37 | // conflict with src/ being used by the main source set. 38 | // Adding new build types or product flavors should be accompanied 39 | // by a similar customization. 40 | debug.setRoot('build-types/debug') 41 | release.setRoot('build-types/release') 42 | } 43 | } 44 | 45 | dependencies { 46 | compile fileTree(dir: 'libs', include: ['*.jar']) 47 | compile project(':Ijkplayer') 48 | 49 | compile 'com.android.support:appcompat-v7:23.4.0' 50 | compile 'com.android.support:design:23.1.1' 51 | compile 'com.android.support:cardview-v7:23.1.1' 52 | compile 'com.alibaba:fastjson:1.1.62.android' 53 | compile 'com.squareup.okhttp3:okhttp:3.8.1' 54 | compile 'com.android.support.constraint:constraint-layout:1.0.2' 55 | testCompile 'junit:junit:4.12' 56 | } 57 | -------------------------------------------------------------------------------- /TvPlayer/src/main/res/layout/layout_menu.xml: -------------------------------------------------------------------------------- 1 | 9 | 10 | 16 | 17 | 25 | 26 | 36 | 37 | 45 | 46 | 47 | 48 | 55 | -------------------------------------------------------------------------------- /Ijkplayer/src/main/java/tv/danmaku/ijk/media/player/misc/AndroidMediaFormat.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2015 Zhang Rui 3 | * Copyright (C) 2016 hejunlin 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package tv.danmaku.ijk.media.player.misc; 18 | 19 | import android.annotation.TargetApi; 20 | import android.media.MediaFormat; 21 | import android.os.Build; 22 | 23 | public class AndroidMediaFormat implements IMediaFormat { 24 | private MediaFormat mMediaFormat; 25 | 26 | public AndroidMediaFormat(MediaFormat mediaFormat) { 27 | mMediaFormat = mediaFormat; 28 | } 29 | 30 | @TargetApi(Build.VERSION_CODES.JELLY_BEAN) 31 | @Override 32 | public int getInteger(String name) { 33 | if (mMediaFormat == null) 34 | return 0; 35 | 36 | return mMediaFormat.getInteger(name); 37 | } 38 | 39 | @TargetApi(Build.VERSION_CODES.JELLY_BEAN) 40 | @Override 41 | public String getString(String name) { 42 | if (mMediaFormat == null) 43 | return null; 44 | 45 | return mMediaFormat.getString(name); 46 | } 47 | 48 | @TargetApi(Build.VERSION_CODES.JELLY_BEAN) 49 | @Override 50 | public String toString() { 51 | StringBuilder out = new StringBuilder(128); 52 | out.append(getClass().getName()); 53 | out.append('{'); 54 | if (mMediaFormat != null) { 55 | out.append(mMediaFormat.toString()); 56 | } else { 57 | out.append("null"); 58 | } 59 | out.append('}'); 60 | return out.toString(); 61 | } 62 | } 63 | -------------------------------------------------------------------------------- /TvPlayer/src/main/res/layout/activity_service_settings.xml: -------------------------------------------------------------------------------- 1 | 2 | 8 | 9 | 16 | 17 | 24 | 25 | 31 | 32 |