/// <summary> /// Set the visual state of the play button when the internal playback state changes. /// </summary> /// <param name="state">The new state</param> void HandlePlaybackStateChanged(MLMusicService.PlaybackStateType state) { if (state == MLMusicService.PlaybackStateType.Playing) { playButton.Material = pauseMaterial; } else if (state == MLMusicService.PlaybackStateType.Paused || state == MLMusicService.PlaybackStateType.Stopped) { playButton.Material = playMaterial; } }
/// <summary> /// Pauses or resumes playback based on if app is or was playing when paused. /// </summary> /// <param name="pause">Determines if it's a pause or a resume.</param> private void OnApplicationPause(bool pause) { #if PLATFORM_LUMIN if (MLMusicService.IsStarted) { if (pause) { playbackStateOnPause = PlaybackState; } if (playbackStateOnPause == MLMusicService.PlaybackStateType.Playing) { MLResult result = pause ? MLMusicService.PausePlayback() : MLMusicService.ResumePlayback(); if (!result.IsOk) { Debug.LogErrorFormat("MLMusicServiceBehavior failed to {0} the current track, disabling script. Reason: {1}.", pause ? "pause" : "resume", result); enabled = false; return; } } } #endif }
/// <summary> /// Popagate new playback state. /// </summary> /// <param name="state">The new state</param> void HandlePlaybackStateChanged(MLMusicService.PlaybackStateType state) { OnPlaybackStateChanged?.Invoke(state); }
private static void HandlePlaybackStateChange(MLMusicService.PlaybackStateType state, IntPtr data) { MLThreadDispatch.Call(state, OnPlaybackStateChange); }
public static extern MLResult.Code MLMusicServiceGetPlaybackState(out MLMusicService.PlaybackStateType outState);