ExoPlayer | An extensible media player for Android | Media library

 by   google Java Version: r2.18.7 License: Apache-2.0

kandi X-RAY | ExoPlayer Summary

kandi X-RAY | ExoPlayer Summary

ExoPlayer is a Java library typically used in Media applications. ExoPlayer has no bugs, it has no vulnerabilities, it has build file available, it has a Permissive License and it has medium support. You can download it from GitHub, Maven.

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.

            kandi-support Support

              ExoPlayer has a medium active ecosystem.
              It has 20769 star(s) with 5966 fork(s). There are 858 watchers for this library.
              It had no major release in the last 12 months.
              There are 731 open issues and 9226 have been closed. On average issues are closed in 73 days. There are 35 open pull requests and 0 closed requests.
              It has a neutral sentiment in the developer community.
              The latest version of ExoPlayer is r2.18.7

            kandi-Quality Quality

              ExoPlayer has 0 bugs and 0 code smells.

            kandi-Security Security

              ExoPlayer has no vulnerabilities reported, and its dependent libraries have no vulnerabilities reported.
              ExoPlayer code analysis shows 0 unresolved vulnerabilities.
              There are 0 security hotspots that need review.

            kandi-License License

              ExoPlayer is licensed under the Apache-2.0 License. This license is Permissive.
              Permissive licenses have the least restrictions, and you can use them in most projects.

            kandi-Reuse Reuse

              ExoPlayer releases are available to install and integrate.
              Deployable package is available in Maven.
              Build file is available. You can build the component from source.
              Installation instructions are not available. Examples and code snippets are available.
              ExoPlayer saves you 207209 person hours of effort in developing the same functionality from scratch.
              It has 872238 lines of code, 18546 functions and 3328 files.
              It has high code complexity. Code complexity directly impacts maintainability of the code.

            Top functions reviewed by kandi - BETA

            kandi has reviewed ExoPlayer and discovered the below as its top functions. This is intended to give you an instant insight into ExoPlayer implemented functionality, and help decide if they suit your requirements.
            • Parses a media playlist .
            • Gets initial bitrate group assignment .
            • Parse stbl .
            • Parse sync frame info .
            • Extract integer element .
            • Returns true if device needs to be set .
            • Resolves a position update for a playlist .
            • Updates the web view .
            • Applies the given styles to the span .
            • Decodes an id3 frame .
            Get all kandi verified functions for this library.

            ExoPlayer Key Features

            No Key Features are available at this moment for ExoPlayer.

            ExoPlayer Examples and Code Snippets

            No Code Snippets are available at this moment for ExoPlayer.

            Community Discussions


            Could not GET 'play-services-location/maven-metadata.xml'. Received status code 502 from server: Bad Gateway
            Asked 2022-Mar-28 at 07:02

            I have a project which was running well yesterday, but today I find this problem:

            Could not resolve all files for configuration ':app:debugRuntimeClasspath'. Could not resolve com.google.android.gms:play-services-location:16.+. Required by: project :app > project :location > Failed to list versions for com.google.android.gms:play-services-location. > Unable to load Maven meta-data from https://google.bintray.com/exoplayer/com/google/android/gms/play-services-location/maven-metadata.xml. > Could not get resource 'https://google.bintray.com/exoplayer/com/google/android/gms/play-services-location/maven-metadata.xml'. > Could not GET 'https://google.bintray.com/exoplayer/com/google/android/gms/play-services-location/maven-metadata.xml'. Received status code 502 from server: Bad Gateway

            acutely I'm using classpath 'com.android.tools.build:gradle:4.1.0'with distributionUrl=https://services.gradle.org/distributions/gradle-6.5-bin.zip I have followed this question and I upgraded 'com.android.tools.build:gradle:4.1.0' to classpath 'com.android.tools.build:gradle:4.2.0' then I changed distributionUrl=https://services.gradle.org/distributions/gradle-6.5-bin.zip to distributionUrl=https\://services.gradle.org/distributions/gradle-6.7.1-all.zip but I still got the error.

            my android/build.gradle:



            Answered 2021-Dec-01 at 09:09

            It looks like a temporary issue, the server with these libraries is down. I have the same problem now with Room:

            Source https://stackoverflow.com/questions/70166663


            Failed to initialize OMX.MTK.VIDEO.DECODER.AVC, error 0xfffffff4
            Asked 2022-Mar-27 at 19:27

            I'm trying to load videos from firebase storage to my recycler view with ExoPlayer. But the problem is that the video sometimes does not play and if i hit the play button it gives me this error below



            Answered 2022-Mar-27 at 19:27

            I had to release the player when the recycler view item are recycled

            I find the answer from this question here

            Source https://stackoverflow.com/questions/71300753


            Audio keeps playing when exoplayer releases
            Asked 2022-Mar-23 at 23:06

            I am using Exoplayer in my dialog. I want the video to play automatically when dialog opens. When simpleExoPlayer.prepare() snippet is active I am able to do autoplay but when I close the dialog audio keeps playing. Before activating simpleExoPlayer.prepare() audio stops when I dismiss dialog. Is there another method to autoplay exoplayer or stop the audio when dialog dismiss?



            Answered 2022-Mar-23 at 23:06

            Seems like you called initializePlayer() twice. resulting in two Exoplayer instances playing; you're only able to release the one the simpleExoPlayer variable holds a reference to.

            Source https://stackoverflow.com/questions/71588494


            Android, Google-cast, "Error inflating class androidx.mediarouter.app.MediaRouteButton"
            Asked 2022-Mar-23 at 15:11

            I have been trying to add google-cast to my Android app that plays videos using Exoplayer. The app has one single activity withTheme.Leanback theme and the same UI is used for both Phones and Android TV.

            To add casting support on phones, I have modified in the player view and I added the cast button as below:



            Answered 2022-Mar-21 at 23:40

            Make sure that you have included the dependency that contains that class in your module's list of dependencies, such as:

            Source https://stackoverflow.com/questions/71565297


            How to resolve exoplayer error : AAPT: error: attribute fastforward_increment not found?
            Asked 2022-Mar-20 at 10:50

            Firstly I added the exoplayer dependency to my build. After that I made a xml layout with a custom controller and then I wanted to add app:fastforward_increment & app:rewind_increment. But every time I try to build it throws this error message :

            AAPT: error: attribute fastforward_increment not found.

            I tried to resolve this issue by adding the other dependecies as they were suggesting in one of the forums but it didn't work. Do you know what's causing the issue and how to solve it?



            Answered 2021-Oct-25 at 16:46

            The functions app:fastforward_increment & app:rewind_increment were removed in the version 2.15.0 and replaced by setSeekBackIncrementMs and setSeekForwardIncrementMs in SimpleExoPlayer.Builder. So instead of changing this value in xml file, now you have to change it programatically:

            Your objects:

            Source https://stackoverflow.com/questions/69710780


            How to resolve NullPointerException on HttpURLConnection?
            Asked 2022-Mar-06 at 02:06

            I am developing an Android application, using ExoPlayer for video playback, Glide for image display, and a download library for file download, and they all have NullPointerException related to HttpURLConnection, I'm sure the link used is available.

            The magic is, I just follow these library's The method described in the official documentation loads the data normally, and this error occurs from time to time, and the three libraries may not throw NullPointerException at the same time, and I don't even know how to reproduce this problem.

            This is the error thrown by ExoPlayer, which prevents the video from loading:



            Answered 2022-Mar-06 at 02:06

            I found the related entry, and to sum it up this is a bug in the TrackedHttpURLConnection implementation, the fix will be capped around mid-late March.

            Update: (Mar 4, 2022 07:09AM)

            Source https://stackoverflow.com/questions/71284785


            Exoplayer load frame when seekbar change
            Asked 2022-Feb-21 at 18:46

            I'm using Exoplayer to play a locally saved video.

            I noticed that when you move the seekbar the video changes only when it is released. Is there a way to load the video frame with every move of the seekbar?



            Answered 2022-Feb-21 at 18:46

            The thumbnails you see when you seek a video timeline are actually usually contained in a separate media stream or 'track'.

            This is created on the server side and delivered as part of the streamed video, or in your case the locally saved video file, as a track in the video container.

            The client downloads (or uploads from s saved file) this track and when a user seeks, it displays the thumbnail image that is closest to the time the user is seeking to.

            Generating the thumbnails on the fly is possible but it does require the video to be loaded, decoded and a frame displayed at the point the user was seeking to.

            This is quite a bit of work to do in the time available so is not usually a practical approach.

            Source https://stackoverflow.com/questions/71196293


            AudioManager auto switching own mode + not respecting setSpeakerphoneOn()
            Asked 2022-Feb-11 at 19:31

            I want to play some audio with volume lvl adjusted to ear aka. "phone call mode". For this purpose, I'm using well-known and commonly advised



            Answered 2022-Feb-11 at 19:31

            found some answers to my own question, sharing with community

            6-sec auto-switch mode is a new feature in Android 12, which works only if (mode == AudioSystem.MODE_IN_COMMUNICATION) (check out flow related to MSG_CHECK_MODE_FOR_UID flag). This should help for MODE_IN_COMMUNICATION set to AudioManager and left after app exit, this was messing with global/system-level audio routing. There is also a brand new AudioManager.OnModeChangedListener called when mode is (auto-)changing

            and setSpeakerphoneOn turns out to be deprecated, even if this isn't marked in doc... we have new method setCommunicationDevice(AudioDeviceInfo) and in its description we have info about startBluetoothSco(), stopBluetoothSco() and setSpeakerphoneOn(boolean) deprecation. I'm using all three methods and now on Android 12 I'm iterating through getAvailableCommunicationDevices(), comparing type of every item and if desired type found I'm calling setCommunicationDevice(targetAudioDeviceInfo). I'm NOT switching audio mode at all now, staying on MODE_NORMAL. All my streams are AudioManager.STREAM_VOICE_CALL type (where applicable)

            for built-in earpiece audio playback aka. "ear-friendly mode" we were using

            Source https://stackoverflow.com/questions/70768622


            IllegalStateException using ExoPlayer on Sony TV
            Asked 2022-Feb-10 at 19:35

            I'm trying to write a simple TvInputService for Android TV using ExoPlayer. On the emulator everything works fine, but on Sony TV (KDL-43WF804) I get IllegalStateException from video codec after a few seconds of video playing. What am I doing wrong?




            Answered 2022-Feb-10 at 19:35

            I figured it out. In my case, this exception is caused by the crash of the system tv application, which owns the Surface object. The codec goes into the Error state when the Surface becomes invalid and at the same moment the ExoPlayer tries to work with the codec's buffers, not knowing that the codec has changed the Executing state to Error.

            And the reason for the crash of the system tv app was the following exception:

            Source https://stackoverflow.com/questions/71054539


            Manifest merger failed : android:exported needs to be explicitly specified for
            Asked 2022-Feb-07 at 15:04

            Merging Errors: Error: android:exported needs to be explicitly specified for element . Apps targeting Android 12 and higher are required to specify an explicit value for android:exported when the corresponding component has an intent filter defined. See https://developer.android.com/guide/topics/manifest/activity-element#exported for details. test.app main manifest (this file), line 19

            I don't even know what to do. I struggled with this mistake for a whole week, but I couldn't.

            Here is my sdk version



            Answered 2022-Feb-07 at 14:59

            Source https://stackoverflow.com/questions/71020415

            Community Discussions, Code Snippets contain sources that include Stack Exchange Network


            No vulnerabilities reported

            Install ExoPlayer

            You can download it from GitHub, Maven.
            You can use ExoPlayer like any standard Java library. Please include the the jar files in your classpath. You can also use any IDE and you can run and debug the ExoPlayer component as you would do with any other Java program. Best practice is to use a build tool that supports dependency management such as Maven or Gradle. For Maven installation, please refer maven.apache.org. For Gradle installation, please refer gradle.org .


            The developer guide provides a wealth of information.The class reference documents ExoPlayer classes.The release notes document the major changes in each release.Follow our developer blog to keep up to date with the latest ExoPlayer developments!
            Find more information at:

            Find, review, and download reusable Libraries, Code Snippets, Cloud APIs from over 650 million Knowledge Items

            Find more libraries
          • HTTPS


          • CLI

            gh repo clone google/ExoPlayer

          • sshUrl


          • Stay Updated

            Subscribe to our newsletter for trending solutions and developer bootcamps

            Agree to Sign up and Terms & Conditions

            Share this Page

            share link