本帖最后由 火工道人 于 2026-3-9 08:52 編輯
本地視頻播放器支持3D VR視頻播放,自帶中文,軟件本身不帶文件管理,設(shè)置選項(xiàng)帶圖形界面,播放需要從文件管理器中選擇打開(kāi)。電視端本地播放播放器眾多,多一個(gè)選擇也是不錯(cuò)的。
anaglyph.png (1.86 MB, 下載次數(shù): 1)
下載附件
保存到相冊(cè)
2026-3-8 12:25 上傳
cardboard-vr.png (1.14 MB, 下載次數(shù): 1)
下載附件
保存到相冊(cè)
2026-3-8 12:25 上傳
player.png (1.65 MB, 下載次數(shù): 1)
下載附件
保存到相冊(cè)
2026-3-8 12:25 上傳
DDD Video Player-1.2.4.zip
(14.6 MB, 下載次數(shù): 5)
2026-3-8 12:25 上傳
點(diǎn)擊文件名下載附件
下載積分: 金幣 -1
論壇限制,文件為壓縮包,下載后直接提取。
Screenshot_20260309_075930_top.rootu.dddplayer.jpg (205.54 KB, 下載次數(shù): 1)
下載附件
保存到相冊(cè)
2026-3-9 08:03 上傳
打開(kāi)直接顯示系統(tǒng)語(yǔ)言,無(wú)需設(shè)置中文。在支持單層杜比的電視設(shè)備上關(guān)閉設(shè)置中Dolby Vision兼容性選項(xiàng)播放杜比流媒體可以正常顯示畫面。
以下為作者發(fā)布頁(yè)介紹 有興趣的可以嘗試看看
Advanced 3D & HDR Video Player for Android TV and Mobile
Supports Android 6.0 (API 23) and above.
DDD Video Player is an advanced video player for Android (TV and Mobile) that allows you to watch not only standard 2D videos but also stereoscopic video pairs, creating an immersive 3D effect. To experience the 3D effect, you will need anaglyph glasses (e.g., Red-Cyan) or Cardboard VR-compatible equipment. Key Features
- Stereo Formats Support:
- Side-by-Side (SBS)
- Top-BOTTom (Over-Under)
- Interlaced
- 3D(z) Tile Format (720p in 1080p)
- Output Modes:
- Anaglyph: High-quality Dubois aLGorithm with customizable color matrices (Red-Cyan, Green-Magenta, Yellow-Blue).
- VR / Cardboard: Lens distortion correction for VR headsets.
- Mono: Watch 3D content in 2D (Left or Right eye only).
- HDR Support: Direct rendering via SurfaceView for native HDR playback on supported displays (when in 2D mode).
- Audio Passthrough: Supports AC3/DTS 5.1 passthrough to external receivers via HDMI/Optical.
- Advanced Subtitles: Correctly renders subtitles in 3D modes.
- Playlist Support: Built-in playlist manager with poster support.
- Customization:
- Adjustable 3D depth (parallax).
- Swap Left/Right eyes.
- Custom anaglyph color tuning (Hue, Leakage).
- VR lens distortion parameters (K1, K2, Scale).
Intent API (Integration)
You can launch DDD Player from external applications using Intent.ACTION_VIEW. Basic Launch (Single Video)
val intent = Intent(Intent.ACTION_VIEW)intent.setDataAndType(Uri.parse("https://example.com/video.mp4"), "video/*")intent.putExtra("title", "Big Buck Bunny")intent.putExtra("poster", "https://example.com/poster.jpg")startActivity(intent)
Supported Extras (Single Video)
[td]Key | Type | Description | title | String | Video title displayed in the UI. | filename | String | Fallback filename if title is missing. | thumbnail | String | URL to the thumbnail image. | position | Int/Long | Start position in milliseconds. | headers | String[] | HTTP headers as array: ["Key1", "Val1", "Key2", "Val2"]. | return_result | Boolean | If true, returns playback position to calling app on finish. | Subtitles (Single Video)
To add external subtitles to a single video, use the following extras: [td]Key | Type | Description | subs | Parcelable[] (Uri) | Array of Uris to subtitle files. | subs.name | String[] | Array of display names (e.g., "English", "Russian"). | subs.filename | String[] | Array of filenames (optional fallback for name). |
Example: val subUris = arrayOf(Uri.parse(".../sub_en.srt"), Uri.parse(".../sub_ru.srt"))val subNames = arrayOf("English", "Russian")intent.putExtra("subs", subUris)intent.putExtra("subs.name", subNames)
Playlist Support
To pass a playlist, use the video_list extra (ParcelableArray of URIs) along with parallel arrays for metadata. [td]Key | Type | Description | video_list | Parcelable[] (Uri) | Required. List of video URLs. | video_list.name | String[] | List of titles. | video_list.filename | String[] | List of filenames. | video_list.thumbnail | String[] | List of thumbnail URLs. | video_list.subtitles | ArrayList<Bundle> | List of subtitles for each video item. |
Playlist Subtitles Structure:The video_list.subtitles extra is an ArrayList where each Bundle corresponds to a video at the same index.Inside each Bundle: - uris: Parcelable[] (Uri) - Subtitle files.
- names: String[] - Subtitle names.
Example (Playlist): val videoUris = arrayOf(Uri.parse(".../vid1.mp4"), Uri.parse(".../vid2.mp4"))val titles = arrayOf("Movie 1", "Movie 2")// Subtitles for Video 1val subs1 = Bundle()subs1.putParcelableArray("uris", arrayOf(Uri.parse(".../vid1_sub.srt")))subs1.putStringArray("names", arrayOf("English"))// Subtitles for Video 2 (No subs)val subs2 = Bundle() val subsList = ArrayList<Bundle>()subsList.add(subs1)subsList.add(subs2)intent.putExtra("video_list", videoUris)intent.putExtra("video_list.name", titles)intent.putParcelableArrayListExtra("video_list.subtitles", subsList)
Tech Stack
- Language: Kotlin
- Player Core: Media3 (ExoPlayer)
- Rendering: OpenGL ES 2.0 (Custom Shaders for 3D/Anaglyph)
- UI: Android Views, ConstraintLayout
- Image Loading: Coil
- Database: Room
- Architecture: MVVM
|