0
我试图将HLS流分配给MediaElement
,然后立即播放它,但我没有这样做。同步运行AdaptiveMediaSource.CreateFromUriAsync
这是一个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()
在此之前执行。
我试图在Task
中包装CreateFromUriAsync
方法,如建议的here,先等待结果,但我无法使其工作。
它与await Task.Delay(TimeSpan.FromMilliseconds(400));
一起使用,但在我看来就像一个滴答作响的定时炸弹。但是,它让我相信,我的问题在async
方法中的某处。
嗯,我想这应该工作。在设置媒体源之前执行'Play()'仍然很奇怪。 – Stefan
这是因为'AdaptiveMediaSource'的创建是异步和等待的。另一件事是你可以在一个线程中运行创建,并等待它完成,例如使用'Task.Run()',但我认为它不会' t很有道理 –
@Stefan如果问题已解决您的问题,请将其标记为解决方案:) –