Releases: novoda/no-player
v2.0.2
onVideoPlaying
gets called multiple times when calling play()
when MediaPlayer
is already playing.
Add a flag and only call onVideoPlaying
when the MediaPlayer
is not already playing.
onError
does not reset state in MediaPlayer
and ExoPlayer
.
Reset when an error occurs.
Prepared state
PreparedListeners.resetPreparedState
was called for ExoPlayer
but ignored in MediaPlayer
when switching assets leading to the Player
to be prepared but never auto-playing content.
ExoPlayer v2
Upgrades to ExoPlayer2 and redesigns the public Api.
Notable api changes:
Players
are created viaPlayerBuilder
instead ofPlayerFactory
- Listeners are attached via
Player.getListeners().add...
instead ofPlayer.add...
Player.reset
is removed in favour ofPlayer.stop
PRs:
#17 Barebones ExoPlayer2 migration (without drm/subtitles)
#21 Refactoring exoplayer facade listeners
#23 Refactoring exoplayer forwarders
#24 Refactoring media player listens
#25 Adding audio tracks to exoplayer
#26 Avoid leaking exoplayer classes to public api
#27 ExoplayerImpl
and ExoPlayerAudioTrackSelector
unit tests
#29 Demo audio track selection
#30 Adds ListenerHolder collaborator
#33 MediaPlayer facade tests
#37 AndroidMediaSelector tests
#38 Mediaplayer facade refactor/tests
#39 Consistent reset logic
#41 MediaPlayer state exceptions
#42 Reducing listeners scope
#43 MediaPlayerImpl creation refactoring
#44 decouple exoplayer constructor listeners
#45 Removing notils
#47 Readding subtitles
#48 Widevine modular streaming support
#50 Widevine modular download support
#51 Drm error propagation
#52 Exposing non secure decoder usage as client api
#54 Asserting Drm is supported when attempting to use drm
#55 Package restructuring
#56 Wrapping exoplayer TextCues to avoid leaking
#57 Replacing PlayerFactory
with PlayerBuilder
#58 Javadoc supported public api
#59 Introducing internal
package for all non support public classes
#61 Fixing NPE in subitles
#62 No longer exposing PlayerChecker
in favour of more information on PlayerInformation
#63 Removing leaking Player from error listeners
#64 Removing Typed player errors and instead providing a ErrorType
#65 Delegating SurfaceHolder lifecycle to exoplayer
#66 Decouple error messages
#67 Fixing exoplayer surfaceholder usage
Audio Null Checks
This release patches an issue in v1.0.2 which introduced a NullPointerException
when a client tried to retrieve or set audio tracks. We now throw a more appropriate message for the client to action against.
Add audio track selection
Release notes
- This release adds ability to change audio tracks for a video. It exposes two new methods in the Player interface.
void selectAudioTrack(int audioTrackIndex)
which selects AudioTrack with given Index.List<PlayerAudioTrack> getAudioTracks()
which returns List of all availablePlayerAudioTrack
items.- Updated minSdkVersion to be 16.
Improved error reporting
Release notes
- This release adds a new error
DrmDecryptionError
reported asPlayerError
. This error will be thrown when exoPlayer is unable to decrypt the drm content. - Updated gradle plugin to
com.android.tools.build:gradle:2.2.3