Native Media Player
Glitch9 Inc.Main Docs.
  • Introduction
    • Native Media Player
    • Preparation
    • Initialization
  • Functionalities
    • Media Item
    • Media Metadata
    • Playlist
    • Media Events
    • UI Components
    • Android Settings
    • iOS Settings
  • Advanced
    • Manual Initialization
    • Creating Playlist at Runtime
    • Single Media Item Playlists
  • API Reference
    • MediaPlayer
      • Properties
      • Methods
    • MediaEvents
    • MediaItem
    • MediaMetadata
    • Playlist
    • Configuration Details
  • Support
    • FAQ
    • Troubleshooting
      • SeekTo (Seekbar) doesn't work
      • java.lang.NoClassDefFoundError
      • One of RECEIVER_EXPORTED or RECEIVER_NOT_EXPORTED should be specified
      • AndroidX Build Error: resource android:attr/lStar not found.
    • Update Logs
Powered by GitBook
On this page
  1. Advanced

Manual Initialization

PreviousiOS SettingsNextCreating Playlist at Runtime

Last updated 11 months ago

Follow the steps below to initialize the plugin manually.

  1. Make sure the AutoInit options is set to false in the preferences.

  2. Manually create a Playlist instance, and initialize MediaPlayer with the playlist.

// Create a media item
MediaItem mediaItem = new MediaItem("audioPath");
List<MediaItem> mediaItems = new() {mediaItem};
Playlist playlist = new Playlist(UriType.StreamingAssets, mediaItems);

MediaPlayer.Initialize(playlist);

// or...
MediaItem mediaItem = new MediaItem("audioPath");
MediaPlayer.Initialize(mediaItem);

Even if you are initializing the plugin manually, you must have NativeMediaPlayer object in the root of the scene. NativeMediaPlayer communicates with the native plugins in order to execute callbacks.

Extended Example with Code Integration

Here is an extended example using additional functionality to manage selected paths and playlists.

using System.Collections.Generic;

namespace Glitch9.NativePlugins.NativeMediaPlayer.Demo
{
    public class ManualInitialization
    {
        private const UriType URI_TYPE = UriType.PersistentDataPath;
        private static string[] _persistentDataPathUri = new[] { "files/1.mp3", "files/2.mp3", "files/3.mp3" };

        private static List<string> _selectedPaths = new();

        private IEnumerable<string> GetSelectedPaths()
        {
            // Add logic to get selected paths
            return _selectedPaths;
        }

        private Playlist CreatePlaylistFromPaths(IEnumerable<string> paths)
        {
            List<MediaItem> mediaItems = new();
            foreach (string path in paths)
            {
                MediaItem mediaItem = new(path);
                mediaItems.add(mediaItem);
            }

            Playlist playlist = new(URI_TYPE, mediaItems);
            return playlist;
        }

        public void SetSelectedSongs(bool firstTime)
        {
            Playlist playlist = CreatePlaylistFromPaths(GetSelectedPaths());

            if (firstTime)
            {
                MediaPlayer.Initialize(playlist, true);
            }
            else
            {
                MediaPlayer.SetPlaylist(playlist, true);
            }
        }
    }
}
Make sure Auto Init is off