MediaPlayerElement play/pause 按钮始终处于禁用状态

MediaPlayerElement play/pause button is always disabled

我正在开发一个新应用,我决定使用 MediaPlayerElement 来播放背景音乐和视频,但是有一个问题。 此外,Universal Windows 平台样本上的 SystemMediaTransportControls 样本也存在同样的问题。 在该示例中,AreTransportControlsEnabled 设置为 False,但如果将其更改为 True,您将看到一个禁用的 Play/Pause 按钮,并且没有 属性 可启用它! 甚至我尝试通过名称获取 MediaTransportControl 中的按钮并尝试将它们设置为启用,但是单击一次播放或暂停按钮会使它再次禁用而无需任何操作。

有什么解决办法吗? 问候。

编辑:我还更改了这些行以添加更多按钮。

<MediaPlayerElement x:Name="mediaPlayerElement" Margin="0,0,10,0" AreTransportControlsEnabled="True" VerticalAlignment="Top">
                        <MediaPlayerElement.TransportControls>
                            <MediaTransportControls IsNextTrackButtonVisible="True" IsPreviousTrackButtonVisible="True"
                                                    IsSkipBackwardButtonVisible="True" IsSkipBackwardEnabled="True"
                                                    IsSkipForwardButtonVisible="True" IsSkipForwardEnabled="True"/>
                        </MediaPlayerElement.TransportControls>
                    </MediaPlayerElement>

“跳过”按钮也被禁用,“下一个”和“上一个”按钮已启用,但如果您单击它们则不会执行任何操作。同样的行为也发生在我的应用程序上。

MediaPlayerElement play/pause button is always disabled

官方代码示例是 handle the SMTC manually,,因此内部 play/pause 按钮始终处于禁用状态。

如果您想使用内部 SMTC,请使用以上 xaml 代码制作一个空白示例。

例如

<MediaPlayerElement
    x:Name="mediaPlayerElement"
    Margin="0,0,10,0"
    AreTransportControlsEnabled="True"
    Source="ms-appx:///Assets/hello.mp4">
    <MediaPlayerElement.TransportControls>
        <MediaTransportControls
            IsNextTrackButtonVisible="True"
            IsPreviousTrackButtonVisible="True"
            IsSkipBackwardButtonVisible="True"
            IsSkipBackwardEnabled="True"
            IsSkipForwardButtonVisible="True"
            IsSkipForwardEnabled="True" />
    </MediaPlayerElement.TransportControls>
</MediaPlayerElement>

更新

private async void Page_Drop(object sender, DragEventArgs e)
{
    var def = e.GetDeferral();
    var file = (StorageFile)(await e.DataView.GetStorageItemsAsync()).FirstOrDefault();
    EmbeddedPlayer.Source = MediaSource.CreateFromStorageFile(file);

    //await AppCore.Instance.Play(new StorageFile[] { file });
    //EmbeddedPlayer.SetMediaPlayer(AppCore.Instance.MediaPlayer);
   
    EmbeddedPlayer.MediaPlayer.Play();
    def.Complete();
}