Bezdepbonusu7Программирование: статьи и ответы

Вопрос

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

Автор вопроса: resp78Ответов: 1

Я устанавливаю список воспроизведения в 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);

uwpuwp-xaml

Ответы

Ответ 1 · Faywang - MSFT

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

player.CommandManager.NextBehavior.EnablingRule = MediaCommandEnablingRule.Never;
player.CommandManager.PreviousBehavior.EnablingRule = MediaCommandEnablingRule.Never;

Перевод вопроса и ответов сообщества Stack Overflow, лицензия CC BY-SA. Оригинал на Stack Overflow.

Похожие материалы