Manual Initialization

Follow the steps below to initialize the plugin manually.

Make sure Auto Init is off
  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);

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);
            }
        }
    }
}

Last updated