protected override void DoStartRendererWithHint(RenderingStartHint startHint) { dz_error_t err; _needNaturalNext = false; Logger.LogTrace("DeezerRenderer::DoStartRendererWithHint startHint={0}", startHint); if (renderMediaName == null || renderMediaName.Length <= 0) { return; } CheckIfInitialized(); if (_dzConnect == IntPtr.Zero || _dzPlayer == IntPtr.Zero) { DeezerApi.HandleDzErrorCode("DeezerRenderer::DoStartRendererWithHint", dz_error_t.DZ_ERROR_CLASS_INSTANTIATION); } // -------------------------------------------------------------------- _evtQueueListLoaded.Reset(); err = DeezerApi.dz_player_load(_dzPlayer, null, IntPtr.Zero, renderMediaName); DeezerApi.HandleDzErrorCode("dz_player_load", err); if (_evtQueueListLoaded.WaitOne(DZ_OPERATION_TIMEOUT) == false) { DeezerApi.HandleDzErrorCode("dz_player_load", dz_error_t.DZ_ERROR_PLAYER_LOAD_TIMEOUT); } Logger.LogTrace("dz_player_load => Success"); // -------------------------------------------------------------------- // -------------------------------------------------------------------- // Start playback using dz_player_play // This will trigger DZ_PLAYER_EVENT_RENDER_TRACK_START // Upon completion, _evtPlayerPlaybackStarted will be set. _evtPlayerPlaybackStarted.Reset(); err = DeezerApi.dz_player_play(_dzPlayer, null, IntPtr.Zero, dz_player_play_command_t.DZ_PLAYER_PLAY_CMD_START_TRACKLIST, DeezerInterop.PlayerApi.Constants.DZ_INDEX_IN_QUEUELIST_CURRENT); DeezerApi.HandleDzErrorCode("dz_player_play", err); if (_evtPlayerPlaybackStarted.WaitOne(DZ_OPERATION_TIMEOUT) == false) { DeezerApi.HandleDzErrorCode("dz_player_play", dz_error_t.DZ_ERROR_PLAYER_PLAY_TIMEOUT); } Logger.LogTrace("dz_player_play => Success"); // -------------------------------------------------------------------- }