{"adoption": {"forks": 434, "observed_at": "2026-08-28T04:07:29.257422+00:00", "stars": 2911}, "canonical_url": "https://ross.abutalabs.com/products/playerbase", "card": {"archived": false, "artifact_type": "library", "description": "The basic library of Android player will process complex business components. The access is simple。Android播放器基础库，专注于播放视图组件的高复用性和组件间的低耦合，轻松处理复杂业务。", "domain": ["mobile-development", "media", "android-tools"], "enriched": true, "function": ["ui-components", "video-processing", "plugin-system"], "health_score": 20, "homepage": null, "language": "Java", "license": "Apache-2.0", "license_family": "permissive", "maturity": "maintenance", "member_repos": ["jiajunhui/PlayerBase"], "name": "jiajunhui/PlayerBase", "platform": ["jvm"], "pushed_at": "2022-02-21T02:10:58+00:00", "repo": "jiajunhui/PlayerBase", "stars": 2911, "tags": ["video-player", "exoplayer", "ijkplayer", "mediaplayer", "fullscreen-video", "list-video-playback", "surfaceview", "textureview", "android"], "topics": ["player", "video", "listvideo", "widget", "fullscreen", "android", "surfaceview", "textureview", "exoplayer", "mediaplayer", "listplay", "ijkplayer"], "urls": [], "use_cases": ["play videos in android app", "switch between exoplayer and ijkplayer decoders", "play video in a list with recyclerview", "implement fullscreen video playback", "build reusable video player widgets", "handle complex video player business components"], "what_it_is": "PlayerBase is an Android video player base library that decouples player view components from decoding backends, supporting MediaPlayer, ExoPlayer, and ijkplayer. It focuses on high reusability of playback UI components and low coupling between them for complex business scenarios like list video playback and fullscreen switching.", "when_to_avoid": ["building for iOS or non-Android platforms", "you need a maintained library - latest release was 2022 and activity is low", "you need advanced features like DRM or adaptive streaming configuration beyond what the backends provide"], "when_to_choose": ["building an Android app that needs flexible video playback with swappable decoder backends", "you need video playback inside scrolling lists or with fullscreen transitions", "you want a component-based player architecture with low coupling"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/playerbase", "repo": "jiajunhui/PlayerBase", "role": "main", "score": 23}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:07:29.257422+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T07:34:15.815975+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "5d41b5e40568a5e779ec46e3acaf837b49d2455237246ef8a48bef856c214c99", "fetched_at": "2026-08-28T04:07:29.257422+00:00", "kind": "readme", "missing": false, "url": "https://github.com/jiajunhui/PlayerBase"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:07:29.257422+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T07:34:15.815975+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "5d41b5e40568a5e779ec46e3acaf837b49d2455237246ef8a48bef856c214c99", "fetched_at": "2026-08-28T04:07:29.257422+00:00", "kind": "readme", "missing": false, "url": "https://github.com/jiajunhui/PlayerBase"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T07:34:15.815975+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "5d41b5e40568a5e779ec46e3acaf837b49d2455237246ef8a48bef856c214c99", "fetched_at": "2026-08-28T04:07:29.257422+00:00", "kind": "readme", "missing": false, "url": "https://github.com/jiajunhui/PlayerBase"}], "taxonomy_version": 1}, "health_score": {"inputs": ["days_since_push", "days_since_release", "archived"], "kind": "computed", "method": "health_v1"}, "homepage": {"kind": "observed", "observed_at": "2026-08-28T04:07:29.257422+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:07:29.257422+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:07:29.257422+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T07:34:15.815975+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "5d41b5e40568a5e779ec46e3acaf837b49d2455237246ef8a48bef856c214c99", "fetched_at": "2026-08-28T04:07:29.257422+00:00", "kind": "readme", "missing": false, "url": "https://github.com/jiajunhui/PlayerBase"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:07:29.257422+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:07:29.257422+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T07:34:15.815975+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "5d41b5e40568a5e779ec46e3acaf837b49d2455237246ef8a48bef856c214c99", "fetched_at": "2026-08-28T04:07:29.257422+00:00", "kind": "readme", "missing": false, "url": "https://github.com/jiajunhui/PlayerBase"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:07:29.257422+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:07:29.257422+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:07:29.257422+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T07:34:15.815975+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "5d41b5e40568a5e779ec46e3acaf837b49d2455237246ef8a48bef856c214c99", "fetched_at": "2026-08-28T04:07:29.257422+00:00", "kind": "readme", "missing": false, "url": "https://github.com/jiajunhui/PlayerBase"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:07:29.257422+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:07:29.257422+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T07:34:15.815975+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "5d41b5e40568a5e779ec46e3acaf837b49d2455237246ef8a48bef856c214c99", "fetched_at": "2026-08-28T04:07:29.257422+00:00", "kind": "readme", "missing": false, "url": "https://github.com/jiajunhui/PlayerBase"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T07:34:15.815975+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "5d41b5e40568a5e779ec46e3acaf837b49d2455237246ef8a48bef856c214c99", "fetched_at": "2026-08-28T04:07:29.257422+00:00", "kind": "readme", "missing": false, "url": "https://github.com/jiajunhui/PlayerBase"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T07:34:15.815975+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "5d41b5e40568a5e779ec46e3acaf837b49d2455237246ef8a48bef856c214c99", "fetched_at": "2026-08-28T04:07:29.257422+00:00", "kind": "readme", "missing": false, "url": "https://github.com/jiajunhui/PlayerBase"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T07:34:15.815975+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "5d41b5e40568a5e779ec46e3acaf837b49d2455237246ef8a48bef856c214c99", "fetched_at": "2026-08-28T04:07:29.257422+00:00", "kind": "readme", "missing": false, "url": "https://github.com/jiajunhui/PlayerBase"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 0, "longevity": 100, "rhythm": 8}, "computed_at": "2026-09-03T02:20:16.233290+00:00", "flags": [], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 3445, "days_push": 1655, "days_rel": null, "gap_med": null, "n_releases_24m": 0}, "score": 23, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}