{"id":19750805,"url":"https://github.com/ryanfranklin237/videoplayer","last_synced_at":"2025-09-14T05:09:13.670Z","repository":{"id":250288885,"uuid":"834020525","full_name":"RYANFRANKLIN237/Videoplayer","owner":"RYANFRANKLIN237","description":"A video player app that supports adaptive streaming and buffering built with exoplayer and media3 libraries","archived":false,"fork":false,"pushed_at":"2024-07-26T09:20:40.000Z","size":106,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-02-28T08:31:55.588Z","etag":null,"topics":["adaptive-streaming","android-studio","exoplayer","kotlin","media3","xml"],"latest_commit_sha":null,"homepage":"","language":"Kotlin","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/RYANFRANKLIN237.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-07-26T08:52:07.000Z","updated_at":"2024-07-26T09:30:20.000Z","dependencies_parsed_at":"2024-07-26T10:41:28.018Z","dependency_job_id":"71cf1b1c-7f14-4e70-88d7-79b7cf978ead","html_url":"https://github.com/RYANFRANKLIN237/Videoplayer","commit_stats":null,"previous_names":["ryanfranklin237/videoplayer"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/RYANFRANKLIN237/Videoplayer","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RYANFRANKLIN237%2FVideoplayer","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RYANFRANKLIN237%2FVideoplayer/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RYANFRANKLIN237%2FVideoplayer/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RYANFRANKLIN237%2FVideoplayer/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/RYANFRANKLIN237","download_url":"https://codeload.github.com/RYANFRANKLIN237/Videoplayer/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RYANFRANKLIN237%2FVideoplayer/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":275062966,"owners_count":25398888,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-09-14T02:00:10.474Z","response_time":75,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["adaptive-streaming","android-studio","exoplayer","kotlin","media3","xml"],"created_at":"2024-11-12T02:39:19.220Z","updated_at":"2025-09-14T05:09:13.646Z","avatar_url":"https://github.com/RYANFRANKLIN237.png","language":"Kotlin","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Video Player App\n\n## Overview\n\nThis repository contains a robust and versatile video player app built with Kotlin, utilizing the bare essentials of the Media3 and ExoPlayer libraries. The player supports adaptive streaming and buffering, ensuring smooth playback even in varying network conditions. Additionally, the app allows for extensive customization of player controls, providing a flexible solution for diverse use cases.\n\n## Features\n\n- **Adaptive Streaming**: Seamless playback with automatic adjustment to network conditions, ensuring minimal interruptions.\n- **Efficient Buffering**: Optimized buffering strategies to deliver a smooth viewing experience.\n- **Customizable Controls**: Easily extend and modify player controls to fit specific requirements.\n- **Lightweight Implementation**: Built using only the necessary components of Media3 and ExoPlayer, keeping the app lightweight and performant.\n\n## Installation\n\n1. **Clone the repository**:\n    ```bash\n    git clone https://github.com/RYANFRANKLIN237/Videoplayer.git\n    cd Videoplayer\n    ```\n\n2. **Open in Android Studio**: Import the project into Android Studio.\n\n3. **Build and Run**: Build the project and run it on your preferred emulator or physical device.\n\n## Usage\n\n### Basic Playback\n\nTo start a basic video playback, initialize the player with a media source:\n\n```kotlin\nval player = ExoPlayer.Builder(context).build()\nval mediaItem = MediaItem.fromUri(\"your_video_url\")\nplayer.setMediaItem(mediaItem)\nplayer.prepare()\nplayer.play()\n```\n\n## Custom controls\n\nCustomizing the player controls is straightforward. You can create your own UI components and link them to the player's control methods.\n\n```kotlin\n// Example: Custom play/pause button\nval playPauseButton: Button = findViewById(R.id.play_pause_button)\nplayPauseButton.setOnClickListener {\n    if (player.isPlaying) {\n        player.pause()\n    } else {\n        player.play()\n    }\n}\n```\n\n## Adaptive streaming\nThe player automatically handles adaptive streaming. Ensure your media source supports adaptive bitrates.\n\n```kotlin\nval mediaItem = MediaItem.Builder()\n    .setUri(\"your_adaptive_stream_url\")\n    .setMimeType(MimeTypes.APPLICATION_MPD) // Example for DASH\n    .build()\nplayer.setMediaItem(mediaItem)\n```\n\n## Dependencies\n- Ensure you include the necessary dependencies in your 'build.gradle' file:\n- Make sure to replace the versions with your preferred versions of the library.\n\n```groovy\nimplementation \"androidx.media3:media3-exoplayer:1.3.1\"\nimplementation \"androidx.media3:media3-ui:1.3.1\"\nimplementation \"androidx.media3:media3-exoplayer-dash:1.3.1\"\n```\n## Contributing\nContributions are welcome! Feel free to open issues or submit pull requests for improvements and bug fixes.\n\n\nFeel free to reach out if you have any questions or need further assistance. Happy coding! 🎉\n\n\n**Note:**  Replace \"your_video_url\" and \"your_adaptive_stream_url\" with actual URLs for testing. Ensure you handle permissions and network security configurations as required by your project specifications.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fryanfranklin237%2Fvideoplayer","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fryanfranklin237%2Fvideoplayer","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fryanfranklin237%2Fvideoplayer/lists"}