All Projects → google → Exoplayer

google / Exoplayer

Licence: apache-2.0
An extensible media player for Android

Programming Languages

java
68154 projects - #9 most used programming language

Projects that are alternatives of or similar to Exoplayer

Exomedia
An Android ExoPlayer wrapper to simplify Audio and Video implementations
Stars: ✭ 1,939 (-89.6%)
Mutual labels:  exoplayer, mediaplayer
Playerbase
The basic library of Android player will process complex business components. The access is simple。Android播放器基础库,专注于播放视图组件的高复用性和组件间的低耦合,轻松处理复杂业务。
Stars: ✭ 2,814 (-84.91%)
Mutual labels:  exoplayer, mediaplayer
Magicalexoplayer
The Easiest Way To Play/Stream Video And Audio Using Google ExoPlayer In Your Android Application
Stars: ✭ 171 (-99.08%)
Mutual labels:  exoplayer, mediaplayer
No Player
Simplified Player wrapper for MediaPlayer and ExoPlayer
Stars: ✭ 182 (-99.02%)
Mutual labels:  exoplayer, mediaplayer
media
Jetpack Media3 support libraries for media use cases, including ExoPlayer, an extensible media player for Android
Stars: ✭ 294 (-98.42%)
Mutual labels:  exoplayer, mediaplayer
Exoplayerxamarin
Xamarin bindings library for the Google ExoPlayer library
Stars: ✭ 124 (-99.34%)
Mutual labels:  exoplayer, mediaplayer
Kohii
Android Video Playback made easy.
Stars: ✭ 204 (-98.91%)
Mutual labels:  exoplayer, mediaplayer
Xamarinmediamanager
Cross platform Xamarin plugin to play and control Audio and Video
Stars: ✭ 647 (-96.53%)
Mutual labels:  exoplayer, mediaplayer
CommenPlayer
CommenPlayer ——Video player, Support ijkPlayer, Vlc, MediaPlayer, ExoPlayer; 视频播放器,支持ijkPlayer,Vlc,MediaPlayer,ExoPlayer
Stars: ✭ 81 (-99.57%)
Mutual labels:  exoplayer, mediaplayer
YetAnotherVideoPlayer
Yet Another Video Player for Andoid
Stars: ✭ 62 (-99.67%)
Mutual labels:  exoplayer, mediaplayer
ti.exoplayer
A native control for playing videos for Titanium. Based on Google ExoPlayer, using Titanium.Media.VideoPlayer API.
Stars: ✭ 17 (-99.91%)
Mutual labels:  exoplayer, mediaplayer
KingPlayer
🎬 一个专注于 Android 视频播放器的基础库,无缝切换内核。(IjkPlayer、ExoPlayer、VlcPlayer、MediaPlayer)
Stars: ✭ 35 (-99.81%)
Mutual labels:  exoplayer, mediaplayer
Dkvideoplayer
Android Video Player. 安卓视频播放器,封装MediaPlayer、ExoPlayer、IjkPlayer。模仿抖音并实现预加载,列表播放,悬浮播放,广告播放,弹幕
Stars: ✭ 3,796 (-79.64%)
Mutual labels:  exoplayer, mediaplayer
MQPlayer
Android video player based on FFmpeg and Exoplayer
Stars: ✭ 20 (-99.89%)
Mutual labels:  exoplayer, mediaplayer
p2p-cdn-sdk-android
Free p2p cdn android github sdk to reduce video streaming costs of live and on demand video using webrtc by upto 90% and improve scalability by 6x - 🚀 Vadootv 🚀
Stars: ✭ 39 (-99.79%)
Mutual labels:  exoplayer
RtmpPlayer
RTMP player on Android
Stars: ✭ 28 (-99.85%)
Mutual labels:  exoplayer
Jade-Player
A media player for Android.
Stars: ✭ 70 (-99.62%)
Mutual labels:  mediaplayer
Bilibili-MusicPlayer
B站音乐区音频第三方播放器 (Bilibili Third-party online music player for Android) MVVM+Room+LiveData+Retrofit+Exoplayer
Stars: ✭ 19 (-99.9%)
Mutual labels:  exoplayer
Exovideoview
a simple video view for exoplayer
Stars: ✭ 263 (-98.59%)
Mutual labels:  exoplayer
BakingApp
🍛🍴 This app allows a user to select a recipe and see video-guided steps for how to complete it, showcasing MVVM, Retrofit, ExoPlayer with lifecycle components, Master/Detail Flow, Widgets.
Stars: ✭ 18 (-99.9%)
Mutual labels:  exoplayer

ExoPlayer

ExoPlayer is an application level media player for Android. It provides an alternative to Android’s MediaPlayer API for playing audio and video both locally and over the Internet. ExoPlayer supports features not currently supported by Android’s MediaPlayer API, including DASH and SmoothStreaming adaptive playbacks. Unlike the MediaPlayer API, ExoPlayer is easy to customize and extend, and can be updated through Play Store application updates.

Documentation

Using ExoPlayer

ExoPlayer modules can be obtained from the Google Maven repository. It's also possible to clone the repository and depend on the modules locally.

From the Google Maven repository

1. Add ExoPlayer module dependencies

The easiest way to get started using ExoPlayer is to add it as a gradle dependency in the build.gradle file of your app module. The following will add a dependency to the full library:

implementation 'com.google.android.exoplayer:exoplayer:2.X.X'

where 2.X.X is your preferred version.

As an alternative to the full library, you can depend on only the library modules that you actually need. For example the following will add dependencies on the Core, DASH and UI library modules, as might be required for an app that only plays DASH content:

implementation 'com.google.android.exoplayer:exoplayer-core:2.X.X'
implementation 'com.google.android.exoplayer:exoplayer-dash:2.X.X'
implementation 'com.google.android.exoplayer:exoplayer-ui:2.X.X'

When depending on individual modules they must all be the same version.

The available library modules are listed below. Adding a dependency to the full ExoPlayer library is equivalent to adding dependencies on all of the library modules individually.

  • exoplayer-core: Core functionality (required).
  • exoplayer-dash: Support for DASH content.
  • exoplayer-hls: Support for HLS content.
  • exoplayer-rtsp: Support for RTSP content.
  • exoplayer-smoothstreaming: Support for SmoothStreaming content.
  • exoplayer-transformer: Media transformation functionality.
  • exoplayer-ui: UI components and resources for use with ExoPlayer.

In addition to library modules, ExoPlayer has extension modules that depend on external libraries to provide additional functionality. Some extensions are available from the Maven repository, whereas others must be built manually. Browse the extensions directory and their individual READMEs for details.

More information on the library and extension modules that are available can be found on the Google Maven ExoPlayer page.

2. Turn on Java 8 support

If not enabled already, you also need to turn on Java 8 support in all build.gradle files depending on ExoPlayer, by adding the following to the android section:

compileOptions {
  targetCompatibility JavaVersion.VERSION_1_8
}

3. Enable multidex

If your Gradle minSdkVersion is 20 or lower, you should enable multidex in order to prevent build errors.

Locally

Cloning the repository and depending on the modules locally is required when using some ExoPlayer extension modules. It's also a suitable approach if you want to make local changes to ExoPlayer, or if you want to use a development branch.

First, clone the repository into a local directory and checkout the desired branch:

git clone https://github.com/google/ExoPlayer.git
cd ExoPlayer
git checkout release-v2

Next, add the following to your project's settings.gradle file, replacing path/to/exoplayer with the path to your local copy:

gradle.ext.exoplayerModulePrefix = 'exoplayer-'
apply from: file("path/to/exoplayer/core_settings.gradle")

You should now see the ExoPlayer modules appear as part of your project. You can depend on them as you would on any other local module, for example:

implementation project(':exoplayer-library-core')
implementation project(':exoplayer-library-dash')
implementation project(':exoplayer-library-ui')

Developing ExoPlayer

Project branches

  • Development work happens on the dev-v2 branch. Pull requests should normally be made to this branch.
  • The release-v2 branch holds the most recent release.

Using Android Studio

To develop ExoPlayer using Android Studio, simply open the ExoPlayer project in the root directory of the repository.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].