Change Log¶
[1.4.0.2017001]¶
Changed¶
- (kohii-core): Compatible with ExoPlayer 2.17.1.
- (kohii-core): Target SDK and Compile SDK are updated to 32.
- (kohii-core): Kotlin 1.6.21.
- (kohii-exoplayer): ExoPlayer is updated to 2.17.1.
Removed¶
- (kohii-core): jcenter repository and its usage.
[1.3.0.x]¶
This version is skipped.
[1.2.0.2011008]¶
Added¶
- (kohii-core): Add
PlayerPoolimplementation. - (kohii-core): Expose
Playback.lockflag. - (kohii-exoplayer): Add
ExoPlayerPoolthat extendsPlayerPooland replace theExoPlayerProvider. - (kohii-androidx): Add
MediaPlayerPoolthat extendsPlayerPooland replace theMediaPlayerProvider. - (kohii-ads): Initial implementation using ExoPlayer and Ima Extension API.
Changed¶
- (kohii-core): Update selection logic. If there is a Playback started manually, the Selector will receive that Playback, otherwise it receives the default candidates.
- (kohii-exoplayer): ExoPlayer is updated to 2.11.8.
- (kohii-exoplayer): Use default CacheDataSourceFactory, which uses default fragment size of 5MB.
- (kohii-exoplayer): DefaultMediaSourceFactoryProvider now accepts nullable DrmSessionManagerProvider.
- (kohii-exoplayer): Default ExoPlayer implementation will always update the AudioAttributes when the Volume setting is called.
- (kohii-core): Always use LOW memory mode if system needs it. (#127)
- (kohii-core): Using ProcessLifecycleOwner instead of screen state broadcast for system-wide toggle the playback. (#125)
Removed¶
- (kohii-exoplayer): Remove
ExoPlayerProviderand its default implementation. - (kohii-androidx): Remove
MediaPlayerProviderand its default implementation.
[1.1.1.2011003]¶
Added¶
- Fix an issue that cause cache doesn't write to file (https://github.com/eneim/kohii/pull/91);
[1.1.0.2011003]¶
- ExoPlayer: 2.11.3
- Support multiple playback. Check out docs and recipe for more information.
- Experimental manual playback. Read more here.
- Add method
Kohii.createControlDispatcher(Playback). Read more here. - Introduce
PlayableObserver, Read more here. - Introduce
activeLifecycleStatesetting for the Manager. Default toState.STARTED. All the playbacks in a Manager can be played only if the lifecycle state of the Manager is at least this value. - Experimental
PlayerParameters,NetworkTypeChangeListener: the callback from aNetworkTypeChangeListenerneeds to return aPlayerParametersvalue so that the player can switch the video/audio quality, resolution, etc. - Deprecate the
VideoSize. Its value is no longer used anymore in the library. - Experimental
initialPlaybackInfosetting for the Binder. Setting this value will allow the Playback to start from a specificPlaybackInfovalue. - Experimental
releaseOnInActivesetting for the Binder. Setting this to false will let the Playback keep its state when it is inactive, but not yet detached from the Manager. - Add method
Playback.Controller.setupRenderer(Playback, Any?)andPlayback.Controller.teardownRenderer(Playback, Any?). Client can configure the renderer with custom manual control logic. - Support Playback locking: if a Playback is locked, it will still be selected but will not be played.
- Add
ExoPlayerCacheto thekohii-exoplayerpackage. It can be used to obtain a pre-built Cache easily. - Add
TrackSelectorFactory,LoadControlFactoryto thekohii-exoplayerpackage. - Add
ExoPlayerConfigto gather most of the detailed setting for aSimpleExoPlayerinstance. - Add
createKohiiconvenient methods to easily createKohiiinstance with custom parameters. - Add
Engine.lock*andEngine.unlock*methods to support manual lock/unlock an Activity/Manager/Bucket or Playback. - Add a simple demonstration that builds TikTok-alike UI/UX: source code.
-
Another document hub for Kohii: https://www.notion.so/The-Kohii-Library-c89a75e2df2b485391b425b5dc83adce
-
[Breaking] Rename
Playable#considerRequestRenderer->Playable#setupRenderer. - [Breaking] Rename
Playable#considerReleaseRenderer->Playable#teardownRenderer. - [Breaking]
RendererProvider#releaseRenderernow needs to return a boolean. - [Breaking]
Playback#addCallbackandPlayback#removeCallbackare now internal. - [Breaking] The
DefaultControlDispatcheris now internal. - [Breaking] Include Playback in the
ArtworkHintListener#onArtworkHint. - [Breaking] Remove default implementations for
BandwidthMeterFactory.
[1.0.0.2010004]¶
2020.03.15
- Open
BuilderforKohiiandLatte. Clients can now use custom implementations to construct those classes. Example usages:
val kohii = Kohii.Builder(context)
.setPlayableCreator(customPlayableCreator)
.build()
1.0.0.2010004-beta.5¶
Experiment release for Bucket.Selector, usage is not finalized yet. Currently it is proved to allow select multiple Playbacks for a Bucket, but finally only one Playback will be picked to play by the Group.
- Add
@JvmOverloadsannotation to support calling from Java. - Other internal improvements.
1.0.0.2010004-beta.3¶
2019.12.18
This is the very first release that is documented. Please visit document page for detail.
- First public beta release.