> For the complete documentation index, see [llms.txt](https://glitch9.gitbook.io/native-media-player/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://glitch9.gitbook.io/native-media-player/introduction/changelog.md).

# Changelog

### v5.0.8 (July 16, 2025)

* Android `playWhenReady` issue finally resolved
* Fixed broken demo scene
* Added fallback UI text settings
* Updated online documentation
* Added API References (via DocFX)

### v5.0.7 (July 15, 2025)

* Resolved Android `playWhenReady` flag issue

### v5.0.6 (July 15, 2025)

* Exposed `playOnStart` property in the custom inspector

### v5.0.5 (July 09, 2025)

* Reduced overall package size
* Polished Android Audio Focus-related code
* Resolved build issues with `UnityMediaPlayer` component

### v5.0.2 (July 06, 2025)

* Refactored and fixed `UnityEditorPlayer.cs` (in-editor playback tester)

### v5.0.1 (June 29, 2025)

* Fixed errors in the Playlist custom editor

### v5.0.0 (June 22, 2025)

* Preview version for Unity 6 with Java 17 support
* **Android**: Migrated to Media3
* **iOS**: Removed AVAudioPlayer (uses only AVPlayer now)

### v4.5.0 (March 27, 2025)

* Resolved `persistentDataPath` issue on iOS
* Resolved repeat mode issue on iOS

### v4.4.9 (March 06, 2025)

* Resolved AVAudioSession conflicts with recent Unity versions on iOS

### v4.4.8 (February 23, 2025)

* Fixed repeat mode issues on iOS

### v4.4.7 (February 12, 2025)

* Fixed persistentDataPath issues
* Fixed async operation issues on iOS

### v4.4.5 (January 03, 2025)

* Fixed `init()` method parameters on iOS

### v4.4.4 (December 23, 2024)

* Fixed `playWhenReady` issue on Android

### v4.4.3 (November 13, 2024)

* Renamed invalid ScriptableObject from `NativeMediaPlayerSettings.asset` to `MediaPlayerSettings.asset`

### v4.4.2 (October 24, 2024)

* Resolved 'RECEIVER\_EXPORTED or RECEIVER\_NOT\_EXPORTED' issue on Android

### v4.4.1 (October 14, 2024)

* Fixed `IsPlaying()` issue on Android
* Fixed `GetDuration()` issue on Android

### v4.4.0 (September 27, 2024)

* Exposed AVAudioSession settings on iOS
* Fixed default AVAudioSession settings

### v4.3.0 (September 8, 2024)

* Android architecture rework for latest SDK compatibility
* Resolved iOS playback issue with Unity audio

### v4.2.7 (August 19, 2024)

* Fixed large playlist loading issue

### v4.2.6 (July 2, 2024)

* Fixed starting position issue on Android
* Resolved iOS permission issue

### v4.2.5 (July 1, 2024)

* Additional stability improvements

### v4.2.4 (June 28, 2024)

* Added support for latest Android SDK
* Fixed ScriptableObject loading issue

### v4.2.3 (June 27, 2024)

* Added extra iOS permissions for additional audio type support
* Fixed `onComplete` listener issue on Android

### v4.2.2 (June 25, 2024)

* Fixed Android playback status issues
* Added utility methods for single-media-item playlists

### v4.2.1 (June 24, 2024)

* Fixed runtime `AddMediaItem()` method not found error
* Refactored `MediaPlayer.cs` and added comments

### v4.2.0 (June 23, 2024)

* Fixed GUI skin light/dark mode issues
* Added audio start position feature
* Added manual initialization option
* Reworked some editor UI designs

### v4.1.9 (June 18, 2024)

* Fixed demo scene playlist issues

### v4.1.8 (July 7, 2024)

* Added modular artwork retrieving options: Base64 (default), StreamingAssetsPath (new), PersistentDataPath (new)
* Options must be set via code (not available in the inspector)
* **PersistentDataPath**:
  * Copies images to a temp folder when loading a playlist
  * Skips copying if image already exists
  * Temp folder is not cleared automatically (must be done manually)
  * Copy operation may be slow
* **StreamingAssetsPath**:
  * Does not copy files
  * Requires pre-existing image files in the StreamingAssets folder
  * Much faster than PersistentDataPath
* Note: Both methods require external write permission on the device
* Applied compression and updated media data transfer logic on iOS

### v4.1.6 (July 2, 2024)

* Resolved starting position issue on Android
* Resolved iOS permission issue

### v4.1.5 (July 1, 2024)

* Stability improvements

### v4.1.4 (June 28, 2024)

* Added support for the latest Android SDK
* Fixed ScriptableObject loading issue

### v4.1.3 (June 27, 2024)

* Added extra iOS permissions for more audio type support
* Fixed `onComplete` listener issue on Android

### v4.1.2 (June 25, 2024)

* Fixed playback status issues on Android
* Added utility methods for single media item playlists

### v4.1.1 (June 24, 2024)

* Fixed runtime issue where `AddMediaItem()` method was not found
* Refactored `MediaPlayer.cs` and added comments

### v4.1.0 (June 23, 2024)

* Fixed light/dark mode issues for GUI skin
* Added audio start position option
* Added manual initialization option
* Reworked editor UI design

### v4.0.9 (May 21, 2024)

* Resolved Play/Pause toggle issue on Android

### v4.0.8 (May 15, 2024)

* Enhanced Android MediaPlayer state management

### v4.0.7 (May 10, 2024)

* Fixed issue with Android deferred actions not clearing

### v4.0.6 (May 9, 2024)

* Resolved iOS UriType issue

### v4.0.4 (May 5, 2024)

* Minor fixes

### v4.0.3 (April 29, 2024)

* Added 4th UriType: `PersistentDataPath`

### v4.0.2 (April 28, 2024)

* Resolved `HttpUtility` compatibility issue with IL2CPP in Unity
* Fixed improper URL formatting for `DownloadAndPlay` UriType
* Added public setters for `UriType`, `DownloadDirectory`, and other Playlist settings
* Improved stability when metadata is missing on iOS
* Boosted performance by caching serialized strings during MediaItem serialization
* Resolved repeat mode being permanently active in Unity
* Added async check in `prepare()` to avoid playback stutter when using `playWhenReady`
* Added ability to hide native player controls (e.g., seekbar)

### v4.0.1 (April 22, 2024)

* Fixed broken inspectors

### v4.0.0 (April 19, 2024)

* Major architecture overhaul for Android 13 compatibility
* WARNING: Not backward compatible
* Folder structures and system design were significantly changed
* Review updated documentation before upgrading

### v3.2.1 (March 26, 2024)

* Fixed missing scripts on premade prefabs
* Resolved MediaBrowser service not initiating when switching playlists

### v3.2.0 (March 15, 2024)

* Refactored legacy scripts
* Metadata is now retrieved all at once
* Added more robust error handling

### v3.1.2 (March 6, 2024)

* Fixed custom inspector errors

### v3.1.1 (March 2, 2024)

* Fixed crashing when calling `Prepare()`
* Fixed iOS initialization issue
* Fixed Android audio focus conflict with Unity audio

### v3.1.0 (February 12, 2024)

* Updated Android 14 support
* Fixed Android dependency issues
* Fixed iOS AudioSession issues

### v3.0.3 (November 29, 2023)

* Fixed playlist initiation with ExoPlayer

### v3.0.2 (November 22, 2023)

* Added Android 14 support

### v3.0.1 (November 4, 2023)

* Refactored editor scripts
* Resolved `core-ktx:1.9.0` dependency issue
* Fixed `EditorTester`
* Organized project structure and files

### v3.0.0 (October 30, 2023)

* Refactored editor scripts
* Eliminated asset path issues
* Bundled dependencies

### v2.1.1 (June 21, 2023)

* Added Android Dependency Management
* Added `Download()` method to `MediaItem`
* Fixed crash issue related to Android `PendingIntent`
* Fixed scene reloading issues in `UnityTester`

### v2.1.0 (March 21, 2023)

* Added `Download And Play` to `pathType`
* Downloads media to `persistentDataPath` if not already existing
* Fixed UI issues in the sample scene

### v2.0.5 (December 5, 2022)

* Changed data transfer method to improve performance
* Major playlist creation rework
* Added `MediaPlayer.UseRemoteCommands(bool active)`
* Removed unnecessary metadata variables

### v2.0.4 (November 12, 2022)

* Major playlist control rework
* Merged `PlaylistController.cs` into `MediaPlayer.cs`
* Fixed crashes from dynamically added Android sources
* Fixed metadata issues with dynamic sources

### v2.0.2 (October 22, 2022)

* Fixed iOS losing focus after `Stop()`
* Fixed Android `playOnAwake` not triggering
* Fixed plugin initiating twice on scene reload

### v2.0.1 (September 17, 2022)

* Added `MediaPlayer.Play(int id)` method
* MediaPlayer can be initialized with a start index
* Fixed iOS not playing new track after track change

### v2.0.0 (August 19, 2022)

* Switched from `PlayerPrefs` to JSON for metadata storage
* Added empty playlist check
* Fixed demo scene button interactions
* General iOS stabilization
* Fixed iOS build errors
* Updated online documentation

### v1.9.6 (June 21, 2022)

* Android: Added notification options: return-to-app, terminate app, dismiss button
* Prevented crash when streaming asset file is missing
* Fixed crash when switching playlists

### v1.9.2 (June 2, 2022)

* Fixed media item init bug
* Fixed issues with plugin in additive scenes
* Android: Added close button and click behavior to notifications
* Fixed Android media button issues

### v1.9.0 (May 21, 2022)

* Refactored C#, Java, and Objective-C codebases
* Added new editor GUI layouts and icons
* Added Android 12 media notification preview to custom inspector
* Split UI components into individual scripts: `MediaButton.cs`, `SeekBar.cs`, `VolumeBar.cs`
* Reworked sample scene layout
* Split native settings into Android and iOS configurations
* Reworked Playlist/Media Metadata (`MediaItems.cs`)
* Metadata is now delivered as strings from native side
* Native side sends volume updates to Unity’s volume bar
* Default media metadata is now in `MediaMetadataRetriever.cs`
* Reworked Android metadata scripts
* Added internal runnable to track playback position accurately
* Added `OnInit` callback support
* Added date validation/conversion on Android
* All shuffle modes now behave like ExoPlayer
* `Previous()` seeks to 0 if playback >1s
* **New API additions**:
  * `bool HasNextMediaItem()`
  * `bool HasPreviousMediaItem()`
  * `string RetrieveTitle()`
  * `string RetrieveArtist()`
  * `string RetrieveAlbumTitle()`
  * `string RetrieveAlbumArtist()`
  * `string RetrieveGenre()`
  * `string RetrieveReleaseDate()`
  * `string RetrieveArtwork()` (Base64)
  * Prefix/suffix options for default metadata
  * Next/Previous button disable conditions
  * `int PreBufferDuration` (NativeMediaPlayerManager.cs)
  * `bool UseSeekBar` (iOSSettings.cs)
* `AVPlayer` now reports correct `isPlaying` value
* Fixed AutoSave behavior
* `GetCurrentMediaItemIndex()` now returns unshuffled index
