最后解决方案。
我很难按照MVVM模式在uwp中找到关于youtubeplayer的信息。
在此背景下<MediaElement>
和<WebView>
之间有什么区别?哪种更好/更容易使用?
如何在VM中处理播放器的事件?
VS2017告诉我,我无法使用MediaPlayerElement
我尝试了VS2017的其他版本/版本,但得到了相同的错误。
TY
编辑:
<WebView>
似乎很容易。使用它有什么缺点吗?
<WebView x:Name="webView" Width="300"
Height="225" Source="https://www.youtube.com/watch?v=2Rg1XmzzrTM"
RelativePanel.AlignHorizontalCenterWithPanel="True"
RelativePanel.Below="linkYT"/>
编辑2:
感谢Aditya Sharma,我走上了正确的轨道,找到了this Question
所以我最终得到了以下内容:
查看:
<MediaElement x:Name="ytPlayer"
AreTransportControlsEnabled="True"
Source="{Binding Test1, Mode=OneWay}"
Width="600"
AutoPlay="True"
Height="400"/>
VM:
public void doSomething()
{
...
test1 = new Uri(convertLink(currentMovie.TrailerSource));
...
}
private string convertLink(string link)
{
IEnumerable<VideoInfo> videoInfos = DownloadUrlResolver.GetDownloadUrls(link, false);
VideoInfo video = videoInfos
.First(info => info.VideoType == VideoType.Mp4 && info.Resolution == 720
);
return video.DownloadUrl;
}
Test1
类型为Uri
,currentMovie.TrailerSource
为string
为了实现这一点,我必须得到NuGet YouTubeExtractor。 希望这有助于有人完成MVVM。
答案 0 :(得分:0)
所以事情就是这样,我们有1. WebView
和2. MediaElement
让我们深入研究这些:
WebView
:基本上是应用浏览器中的手机。你可以给它一个链接,它会导航到webPage。您可以将它用于youtube筛选,但会有缺点:
MediaElement
非常方便,它有source
属性,也需要Uri
数据类型,所以最棒的是你可以传递Uri
作为youtube vid的嵌入式链接,MediaElement将为您处理所有内容,它还会为您提供一些额外的优势,例如控制您的用户界面,播放/暂停甚至自定义样式和autoplay / playRate选项。
所以在我看来,我会说MediaElement
使用webView
,因为它可以让您更好地控制发生的事情并为用户提供本机体验。
您可以在此处找到更多相关信息 in this question及其评论部分。
此外,由于您将在Windows 10上使用mvvm
,我建议您x:bind
MediaElement的Source
属性为Uri
DataType属性在oneWay
ViewModel
模式