同步运行AdaptiveMediaSource.CreateFromUriAsync

时间:2016-09-21 15:26:49

标签: c# asynchronous uwp

我正在尝试将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中,与建议的here一样,等待结果,但我无法使其正常工作。

它适用于await Task.Delay(TimeSpan.FromMilliseconds(400));,但在我看来就像一个滴答作响的定时炸弹。但是,它让我相信,我的问题在async方法的某个地方。

1 个答案:

答案 0 :(得分:1)

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