AdaptiveMediaSource运行.CreateFromUriAsync同步

本文关键字:同步 CreateFromUriAsync 运行 AdaptiveMediaSource | 更新日期: 2023-09-27 18:08:02

我正试图将HLS流分配给MediaElement,然后立即播放,但我未能这样做。

是一个UWP应用程序(Windows 10)。

Uri hlsUri = new Uri("http://devimages.apple.com/iphone/samples/bipbop/bipbopall.m3u8");
AdaptiveMediaSourceCreationResult hlsSource = await AdaptiveMediaSource.CreateFromUriAsync(hlsUri);
if (hlsSource .Status == AdaptiveMediaSourceCreationStatus.Success)
{
    videoPlayer.SetMediaStreamSource(hlsSource .MediaSource);
    videoPlayer.Play();
}

由于某种原因,这东西不工作。设置了StreamSource,但由于某种原因Play()在此之前执行。

我试图将CreateFromUriAsync方法包装在Task中,就像这里建议的那样,先等待结果,但我无法使其工作。

它与await Task.Delay(TimeSpan.FromMilliseconds(400));一起工作,但对我来说,这看起来像一个定时炸弹。然而,它让我相信,我的问题是在async方法的某个地方。

AdaptiveMediaSource运行.CreateFromUriAsync同步

如果您想在设置MediaElement后立即开始播放,我建议您将其AutoPlay属性设置为true。这应该行得通!:)