Manual Initialization
Follow the steps below to initialize the plugin manually.

Make sure the
AutoInit
options is set tofalse
in the preferences.Manually create a
Playlist
instance, and initializeMediaPlayer
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);
}
}
}
}
Last updated