实例介绍
【实例截图】
【核心代码】
.
├── TVBOX IPTV电视源码_TVBoxOSC-main.zip
└── TVBoxOSC-main
├── LICENSE
├── app
│ ├── build.gradle
│ ├── libs
│ │ └── thunder.jar
│ ├── proguard-rules.pro
│ ├── schemas
│ │ └── com.github.tvbox.osc.data.AppDataBase
│ │ ├── 1.json
│ │ └── 3.json
│ └── src
│ └── main
│ ├── AndroidManifest.xml
│ ├── assets
│ │ └── ua.db
│ ├── java
│ │ ├── com
│ │ │ └── github
│ │ │ ├── catvod
│ │ │ │ └── crawler
│ │ │ │ ├── JarLoader.java
│ │ │ │ ├── Spider.java
│ │ │ │ ├── SpiderDebug.java
│ │ │ │ └── SpiderNull.java
│ │ │ └── tvbox
│ │ │ └── osc
│ │ │ ├── api
│ │ │ │ └── ApiConfig.java
│ │ │ ├── base
│ │ │ │ ├── App.java
│ │ │ │ ├── BaseActivity.java
│ │ │ │ └── BaseLazyFragment.java
│ │ │ ├── bean
│ │ │ │ ├── AbsJson.java
│ │ │ │ ├── AbsSortJson.java
│ │ │ │ ├── AbsSortXml.java
│ │ │ │ ├── AbsXml.java
│ │ │ │ ├── IJKCode.java
│ │ │ │ ├── LiveChannelGroup.java
│ │ │ │ ├── LiveChannelItem.java
│ │ │ │ ├── LivePlayerManager.java
│ │ │ │ ├── LiveSettingGroup.java
│ │ │ │ ├── LiveSettingItem.java
│ │ │ │ ├── Movie.java
│ │ │ │ ├── MovieSort.java
│ │ │ │ ├── ParseBean.java
│ │ │ │ ├── SourceBean.java
│ │ │ │ └── VodInfo.java
│ │ │ ├── cache
│ │ │ │ ├── Cache.java
│ │ │ │ ├── CacheDao.java
│ │ │ │ ├── CacheManager.java
│ │ │ │ ├── RoomDataManger.java
│ │ │ │ ├── VodCollect.java
│ │ │ │ ├── VodCollectDao.java
│ │ │ │ ├── VodRecord.java
│ │ │ │ └── VodRecordDao.java
│ │ │ ├── callback
│ │ │ │ ├── EmptyCallback.java
│ │ │ │ └── LoadingCallback.java
│ │ │ ├── data
│ │ │ │ ├── AppDataBase.java
│ │ │ │ └── AppDataManager.java
│ │ │ ├── event
│ │ │ │ ├── HistoryStateEvent.java
│ │ │ │ ├── RefreshEvent.java
│ │ │ │ ├── ServerEvent.java
│ │ │ │ └── TopStateEvent.java
│ │ │ ├── picasso
│ │ │ │ └── RoundTransformation.java
│ │ │ ├── player
│ │ │ │ ├── IjkMediaPlayer.java
│ │ │ │ ├── controller
│ │ │ │ │ ├── BaseController.java
│ │ │ │ │ ├── LiveController.java
│ │ │ │ │ └── VodController.java
│ │ │ │ ├── render
│ │ │ │ │ ├── SurfaceRenderView.java
│ │ │ │ │ └── SurfaceRenderViewFactory.java
│ │ │ │ └── thirdparty
│ │ │ │ ├── MXPlayer.java
│ │ │ │ └── ReexPlayer.java
│ │ │ ├── receiver
│ │ │ │ ├── CustomWebReceiver.java
│ │ │ │ └── SearchReceiver.java
│ │ │ ├── server
│ │ │ │ ├── ControlManager.java
│ │ │ │ ├── DataReceiver.java
│ │ │ │ ├── InputRequestProcess.java
│ │ │ │ ├── RawRequestProcess.java
│ │ │ │ ├── RemoteServer.java
│ │ │ │ ├── RequestProcess.java
│ │ │ │ └── ShellUtils.java
│ │ │ ├── ui
│ │ │ │ ├── activity
│ │ │ │ │ ├── CollectActivity.java
│ │ │ │ │ ├── DetailActivity.java
│ │ │ │ │ ├── HistoryActivity.java
│ │ │ │ │ ├── HomeActivity.java
│ │ │ │ │ ├── LivePlayActivity.java
│ │ │ │ │ ├── PlayActivity.java
│ │ │ │ │ ├── PushActivity.java
│ │ │ │ │ ├── SearchActivity.java
│ │ │ │ │ └── SettingActivity.java
│ │ │ │ ├── adapter
│ │ │ │ │ ├── ApiHistoryDialogAdapter.java
│ │ │ │ │ ├── BackupAdapter.java
│ │ │ │ │ ├── CollectAdapter.java
│ │ │ │ │ ├── GridAdapter.java
│ │ │ │ │ ├── GridFilterKVAdapter.java
│ │ │ │ │ ├── HistoryAdapter.java
│ │ │ │ │ ├── HomeHotVodAdapter.java
│ │ │ │ │ ├── HomePageAdapter.java
│ │ │ │ │ ├── LiveChannelGroupAdapter.java
│ │ │ │ │ ├── LiveChannelItemAdapter.java
│ │ │ │ │ ├── LiveSettingGroupAdapter.java
│ │ │ │ │ ├── LiveSettingItemAdapter.java
│ │ │ │ │ ├── ParseAdapter.java
│ │ │ │ │ ├── PinyinAdapter.java
│ │ │ │ │ ├── QuickSearchAdapter.java
│ │ │ │ │ ├── SearchAdapter.java
│ │ │ │ │ ├── SearchWordAdapter.java
│ │ │ │ │ ├── SelectDialogAdapter.java
│ │ │ │ │ ├── SeriesAdapter.java
│ │ │ │ │ ├── SeriesFlagAdapter.java
│ │ │ │ │ ├── SettingMenuAdapter.java
│ │ │ │ │ ├── SettingPageAdapter.java
│ │ │ │ │ └── SortAdapter.java
│ │ │ │ ├── dialog
│ │ │ │ │ ├── AboutDialog.java
│ │ │ │ │ ├── ApiDialog.java
│ │ │ │ │ ├── ApiHistoryDialog.java
│ │ │ │ │ ├── BackupDialog.java
│ │ │ │ │ ├── BaseDialog.java
│ │ │ │ │ ├── GridFilterDialog.java
│ │ │ │ │ ├── LivePasswordDialog.java
│ │ │ │ │ ├── QuickSearchDialog.java
│ │ │ │ │ ├── RemoteDialog.java
│ │ │ │ │ ├── SelectDialog.java
│ │ │ │ │ ├── TipDialog.java
│ │ │ │ │ └── XWalkInitDialog.java
│ │ │ │ ├── fragment
│ │ │ │ │ ├── GridFragment.java
│ │ │ │ │ ├── ModelSettingFragment.java
│ │ │ │ │ └── UserFragment.java
│ │ │ │ └── tv
│ │ │ │ ├── QRCodeGen.java
│ │ │ │ └── widget
│ │ │ │ ├── DefaultTransformer.java
│ │ │ │ ├── FixedSpeedScroller.java
│ │ │ │ ├── LoadMoreView.java
│ │ │ │ ├── MarqueeTextView.java
│ │ │ │ ├── NoScrollViewPager.java
│ │ │ │ ├── SearchKeyboard.java
│ │ │ │ └── ViewObj.java
│ │ │ ├── util
│ │ │ │ ├── AdBlocker.java
│ │ │ │ ├── AppManager.java
│ │ │ │ ├── DefaultConfig.java
│ │ │ │ ├── FastClickCheckUtil.java
│ │ │ │ ├── FileUtils.java
│ │ │ │ ├── HawkConfig.java
│ │ │ │ ├── LOG.java
│ │ │ │ ├── MD5.java
│ │ │ │ ├── OkGoHelper.java
│ │ │ │ ├── PlayerHelper.java
│ │ │ │ ├── SSL
│ │ │ │ │ └── SSLSocketFactoryCompat.java
│ │ │ │ ├── TLSSocketFactory.java
│ │ │ │ ├── UA.java
│ │ │ │ ├── XWalkUtils.java
│ │ │ │ └── thunder
│ │ │ │ └── Thunder.java
│ │ │ └── viewmodel
│ │ │ └── SourceViewModel.java
│ │ └── okhttp3
│ │ └── dnsoverhttps
│ │ ├── BootstrapDns.java
│ │ ├── DnsOverHttps.java
│ │ └── DnsRecordCodec.java
│ └── res
│ ├── drawable
│ │ ├── anim_loading.xml
│ │ ├── app_banner.png
│ │ ├── app_bg.png
│ │ ├── box_controller_top_bg.xml
│ │ ├── button_detail_collect.xml
│ │ ├── button_detail_play.xml
│ │ ├── button_detail_quick_search.xml
│ │ ├── button_detail_sort.xml
│ │ ├── button_dialog_main.xml
│ │ ├── button_home_sort_focus.xml
│ │ ├── icon_back.png
│ │ ├── icon_collect.xml
│ │ ├── icon_delete.xml
│ │ ├── icon_empty.png
│ │ ├── icon_error.xml
│ │ ├── icon_filter.xml
│ │ ├── icon_history.xml
│ │ ├── icon_img_placeholder.png
│ │ ├── icon_live.xml
│ │ ├── icon_loading.png
│ │ ├── icon_play.png
│ │ ├── icon_pre.png
│ │ ├── icon_push.xml
│ │ ├── icon_search.xml
│ │ ├── icon_setting.xml
│ │ ├── icon_video.png
│ │ ├── img_loading_placeholder.xml
│ │ ├── input_dialog_api_input.xml
│ │ ├── input_search.xml
│ │ ├── shape_dialog_bg_main.xml
│ │ ├── shape_dialog_filter_bg.xml
│ │ ├── shape_live_channel_num.xml
│ │ ├── shape_live_focus.xml
│ │ ├── shape_play_bottom.xml
│ │ ├── shape_play_mobile_center.xml
│ │ ├── shape_player_control_vod_seek.xml
│ │ ├── shape_player_control_vod_seek_thumb.xml
│ │ ├── shape_player_control_vod_seek_thumb_normal.xml
│ │ ├── shape_player_control_vod_seek_thumb_press.xml
│ │ ├── shape_setting_model_focus.xml
│ │ ├── shape_setting_sort_focus.xml
│ │ ├── shape_source_flag_focus.xml
│ │ ├── shape_source_flag_line.xml
│ │ ├── shape_source_focus.xml
│ │ ├── shape_source_series_focus.xml
│ │ ├── shape_thumb_bottom_name.xml
│ │ ├── shape_thumb_lang.xml
│ │ ├── shape_thumb_note.xml
│ │ ├── shape_thumb_year.xml
│ │ └── shape_user_focus.xml
│ ├── drawable-hdpi
│ │ └── app_icon.png
│ ├── drawable-xhdpi
│ │ ├── app_icon.png
│ │ ├── vod_pause.png
│ │ └── vod_play.png
│ ├── drawable-xxhdpi
│ │ └── app_icon.png
│ ├── drawable-xxxhdpi
│ │ └── app_icon.png
│ ├── layout
│ │ ├── activity_collect.xml
│ │ ├── activity_detail.xml
│ │ ├── activity_history.xml
│ │ ├── activity_home.xml
│ │ ├── activity_live_play.xml
│ │ ├── activity_play.xml
│ │ ├── activity_push.xml
│ │ ├── activity_search.xml
│ │ ├── activity_setting.xml
│ │ ├── box_vod_control_view.xml
│ │ ├── dialog_about.xml
│ │ ├── dialog_api.xml
│ │ ├── dialog_api_history.xml
│ │ ├── dialog_backup.xml
│ │ ├── dialog_grid_filter.xml
│ │ ├── dialog_live_password.xml
│ │ ├── dialog_quick_search.xml
│ │ ├── dialog_remote.xml
│ │ ├── dialog_select.xml
│ │ ├── dialog_tip.xml
│ │ ├── dialog_xwalk.xml
│ │ ├── fragment_grid.xml
│ │ ├── fragment_model.xml
│ │ ├── fragment_user.xml
│ │ ├── item_dialog_api_history.xml
│ │ ├── item_dialog_backup.xml
│ │ ├── item_dialog_select.xml
│ │ ├── item_grid.xml
│ │ ├── item_grid_filter.xml
│ │ ├── item_grid_filter_value.xml
│ │ ├── item_home_sort.xml
│ │ ├── item_keyboard.xml
│ │ ├── item_live.xml
│ │ ├── item_live_channel.xml
│ │ ├── item_live_channel_group.xml
│ │ ├── item_live_setting.xml
│ │ ├── item_live_setting_group.xml
│ │ ├── item_play_parse.xml
│ │ ├── item_quick_search_lite.xml
│ │ ├── item_search.xml
│ │ ├── item_search_lite.xml
│ │ ├── item_search_word_hot.xml
│ │ ├── item_search_word_split.xml
│ │ ├── item_series.xml
│ │ ├── item_series_flag.xml
│ │ ├── item_setting_menu.xml
│ │ ├── item_user_hot_vod.xml
│ │ ├── item_view_load_more.xml
│ │ ├── layout_keyborad.xml
│ │ ├── loadsir_empty_layout.xml
│ │ ├── loadsir_loading_layout.xml
│ │ ├── player_live_control_view.xml
│ │ └── player_vod_control_view.xml
│ ├── raw
│ │ ├── index.html
│ │ ├── jquery.js
│ │ ├── script.js
│ │ ├── style.css
│ │ └── ui.css
│ ├── values
│ │ ├── attrs.xml
│ │ ├── colors.xml
│ │ ├── dimens.xml
│ │ ├── strings.xml
│ │ └── styles.xml
│ └── xml
│ ├── file_paths.xml
│ └── network_security_config.xml
├── build.gradle
├── gradle
│ └── wrapper
│ ├── gradle-wrapper.jar
│ └── gradle-wrapper.properties
├── gradle.properties
├── gradlew
├── gradlew.bat
├── player
│ ├── build.gradle
│ ├── proguard-rules.pro
│ └── src
│ └── main
│ ├── AndroidManifest.xml
│ ├── java
│ │ ├── tv
│ │ │ └── danmaku
│ │ │ └── ijk
│ │ │ └── media
│ │ │ ├── player
│ │ │ │ ├── AbstractMediaPlayer.java
│ │ │ │ ├── AndroidMediaPlayer.java
│ │ │ │ ├── IMediaPlayer.java
│ │ │ │ ├── ISurfaceTextureHolder.java
│ │ │ │ ├── ISurfaceTextureHost.java
│ │ │ │ ├── IjkLibLoader.java
│ │ │ │ ├── IjkMediaCodecInfo.java
│ │ │ │ ├── IjkMediaMeta.java
│ │ │ │ ├── IjkMediaPlayer.java
│ │ │ │ ├── IjkTimedText.java
│ │ │ │ ├── MediaInfo.java
│ │ │ │ ├── MediaPlayerProxy.java
│ │ │ │ ├── TextureMediaPlayer.java
│ │ │ │ ├── annotations
│ │ │ │ │ ├── AccessedByNative.java
│ │ │ │ │ └── CalledByNative.java
│ │ │ │ ├── demo
│ │ │ │ │ └── IjkDemoActivity.java
│ │ │ │ ├── exceptions
│ │ │ │ │ └── IjkMediaException.java
│ │ │ │ ├── ffmpeg
│ │ │ │ │ └── FFmpegApi.java
│ │ │ │ ├── misc
│ │ │ │ │ ├── AndroidMediaFormat.java
│ │ │ │ │ ├── AndroidTrackInfo.java
│ │ │ │ │ ├── IAndroidIO.java
│ │ │ │ │ ├── IMediaDataSource.java
│ │ │ │ │ ├── IMediaFormat.java
│ │ │ │ │ ├── ITrackInfo.java
│ │ │ │ │ ├── IjkMediaFormat.java
│ │ │ │ │ └── IjkTrackInfo.java
│ │ │ │ └── pragma
│ │ │ │ ├── DebugLog.java
│ │ │ │ └── Pragma.java
│ │ │ └── player_armv7a
│ │ │ └── Pragma.java
│ │ └── xyz
│ │ └── doikki
│ │ └── videoplayer
│ │ ├── controller
│ │ │ ├── BaseVideoController.java
│ │ │ ├── ControlWrapper.java
│ │ │ ├── GestureVideoController.java
│ │ │ ├── IControlComponent.java
│ │ │ ├── IGestureComponent.java
│ │ │ ├── IVideoController.java
│ │ │ ├── MediaPlayerControl.java
│ │ │ └── OrientationHelper.java
│ │ ├── exo
│ │ │ ├── ExoMediaPlayer.java
│ │ │ ├── ExoMediaPlayerFactory.java
│ │ │ └── ExoMediaSourceHelper.java
│ │ ├── ijk
│ │ │ ├── IjkPlayer.java
│ │ │ ├── IjkPlayerFactory.java
│ │ │ └── RawDataSourceProvider.java
│ │ ├── player
│ │ │ ├── AbstractPlayer.java
│ │ │ ├── AndroidMediaPlayer.java
│ │ │ ├── AndroidMediaPlayerFactory.java
│ │ │ ├── AudioFocusHelper.java
│ │ │ ├── PlayerFactory.java
│ │ │ ├── ProgressManager.java
│ │ │ ├── VideoView.java
│ │ │ ├── VideoViewConfig.java
│ │ │ └── VideoViewManager.java
│ │ ├── render
│ │ │ ├── IRenderView.java
│ │ │ ├── MeasureHelper.java
│ │ │ ├── RenderViewFactory.java
│ │ │ ├── TextureRenderView.java
│ │ │ └── TextureRenderViewFactory.java
│ │ └── util
│ │ ├── CutoutUtil.java
│ │ ├── L.java
│ │ └── PlayerUtils.java
│ ├── jniLibs
│ │ └── armeabi-v7a
│ │ ├── libplayer.so
│ │ ├── libxl_stat.so
│ │ └── libxl_thunder_sdk.so
│ └── res
│ ├── layout
│ │ └── ijk_demo_activity.xml
│ └── values
│ ├── attrs.xml
│ └── strings.xml
└── settings.gradle
84 directories, 337 files
相关软件
小贴士
感谢您为本站写下的评论,您的评论对其它用户来说具有重要的参考价值,所以请认真填写。
- 类似“顶”、“沙发”之类没有营养的文字,对勤劳贡献的楼主来说是令人沮丧的反馈信息。
- 相信您也不想看到一排文字/表情墙,所以请不要反馈意义不大的重复字符,也请尽量不要纯表情的回复。
- 提问之前请再仔细看一遍楼主的说明,或许是您遗漏了。
- 请勿到处挖坑绊人、招贴广告。既占空间让人厌烦,又没人会搭理,于人于己都无利。
关于好例子网
本站旨在为广大IT学习爱好者提供一个非营利性互相学习交流分享平台。本站所有资源都可以被免费获取学习研究。本站资源来自网友分享,对搜索内容的合法性不具有预见性、识别性、控制性,仅供学习研究,请务必在下载后24小时内给予删除,不得用于其他任何用途,否则后果自负。基于互联网的特殊性,平台无法对用户传输的作品、信息、内容的权属或合法性、安全性、合规性、真实性、科学性、完整权、有效性等进行实质审查;无论平台是否已进行审查,用户均应自行承担因其传输的作品、信息、内容而可能或已经产生的侵权或权属纠纷等法律责任。本站所有资源不代表本站的观点或立场,基于网友分享,根据中国法律《信息网络传播权保护条例》第二十二与二十三条之规定,若资源存在侵权或相关问题请联系本站客服人员,点此联系我们。关于更多版权及免责申明参见 版权及免责申明
网友评论
我要评论