Как отключить кнопки «Далее» и «Предыдущий» в MediaTransportControls (UWP)

Я устанавливаю список воспроизведения в MediaPlayerElement следующим образом, однако я обнаружил, что нет способа отключить кнопки дорожек previous или next.

Кнопки

Что еще более удивительно, все это очень хорошо интегрируется с System Media Trasport Control на уровне ОС, то есть кнопки «предыдущий» и «следующий» автоматически отключаются, когда я нахожусь на первом или последнем треке.

Просмотр управления SMTCвведите здесь описание изображения

<MediaPlayerElement x:Name="MediaPlayerElement" AreTransportControlsEnabled="True">
    <MediaPlayerElement.TransportControls>
        <MediaTransportControls
            IsFullWindowButtonVisible="False"
            IsNextTrackButtonVisible="True"
            IsPreviousTrackButtonVisible="True"
            IsZoomButtonVisible="False" />
    </MediaPlayerElement.TransportControls>
</MediaPlayerElement>
var playbackList = new MediaPlaybackList();

var total = (uint)episodes.Count();

uint track = 0;
foreach (var episode in episodes)
{
    var mediaPlaybackItem = new MediaPlaybackItem(MediaSource.CreateFromUri(new Uri(episode.MediaUrl)));

    var props = mediaPlaybackItem.GetDisplayProperties();
    props.Type = Windows.Media.MediaPlaybackType.Music;
    props.Thumbnail = RandomAccessStreamReference.CreateFromUri(new Uri(episode.ImageUrl));
    props.MusicProperties.Title = episode.Title;
    props.MusicProperties.Artist = episode.Author;
    props.MusicProperties.AlbumTrackCount = total;
    props.MusicProperties.TrackNumber = ++track;
    mediaPlaybackItem.ApplyDisplayProperties(props);
    playbackList.Items.Add(mediaPlaybackItem);
}

MediaPlayer.Source = playbackList;

mediaPlayerElement.SetMediaPlayer(MediaPlayer);


person resp78    schedule 31.08.2019    source источник


Ответы (1)


Вы можете изменить или полностью переопределить поведение элементов управления SMTC с помощью класса MediaPlaybackCommandManager. Отключите следующую или предыдущую команду, установив для параметра EnablingRule для следующей/предыдущей команды значение Никогда. Для получения более подробной информации вы можете обратиться к документ.

player.CommandManager.NextBehavior.EnablingRule = MediaCommandEnablingRule.Never;
player.CommandManager.PreviousBehavior.EnablingRule = MediaCommandEnablingRule.Never;
person Faywang - MSFT    schedule 02.09.2019
comment
Моя проблема не с SMTC, пользовательский интерфейс SMTC работает нормально (предыдущий и следующий отключены соответствующим образом). Это кнопки предыдущей и следующей дорожки в MediaPlayerElement в приложении UWP, которые не отключены. - person resp78; 02.09.2019
comment
Я обновил вопрос снимками управления MediaPlayerElement и SMTC. Я на 1803. - person resp78; 02.09.2019
comment
Если вы хотите отключить кнопки предыдущей и следующей дорожки, такие как элемент управления SMTC (цвет становится серым), собственный элемент управления UWP не может этого сделать, похоже, вам нужно настроить контроллер. - person Faywang - MSFT; 03.09.2019
comment
Я расширил класс MediaTransportControls и попытался выполнить это. Но это все еще не работает. - person resp78; 09.10.2019