C# XAMARIN-从youtube添加视频

C# XAMARIN-从youtube添加视频,c#,android,xml,xamarin,C#,Android,Xml,Xamarin,我搜索如何从youtube添加视频的信息,例如: 我想从一些youtube链接添加视频。 我认为应该在webview中,但我需要一些详细信息,因为我找不到有关我的问题的任何信息。这里有一些链接。 您可以使用webview播放youtube视频 string html=@"<html><body><iframe width=""200"" height=""400"" src=""strUrl""></iframe></body>

我搜索如何从youtube添加视频的信息,例如: 我想从一些youtube链接添加视频。 我认为应该在webview中,但我需要一些详细信息,因为我找不到有关我的问题的任何信息。

这里有一些链接。

您可以使用webview播放youtube视频

    string html=@"<html><body><iframe width=""200"" height=""400"" src=""strUrl""></iframe></body></html>"; 
            var myWebView = ( WebView ) FindViewById ( Resource.Id.myWebView );  
            var settings=myWebView.Settings; 
            settings.JavaScriptEnabled=true;
            settings.UseWideViewPort=true;  
            settings.LoadWithOverviewMode=true;
            settings.JavaScriptCanOpenWindowsAutomatically=true; 
            settings.DomStorageEnabled=true;
            settings.SetRenderPriority(WebSettings.RenderPriority.High); 
            settings.BuiltInZoomControls = false; 
            settings.JavaScriptCanOpenWindowsAutomatically=true;
            myWebView.SetWebChromeClient(new WebChromeClient());
            settings.AllowFileAccess = true;
            settings.SetPluginState(WebSettings.PluginState.On);  

            myWebView.LoadDataWithBaseURL(null,html,"text/html","UTF-8",null); 
stringhtml=@”;
var myWebView=(WebView)findviewbyd(Resource.Id.myWebView);
var settings=myWebView.settings;
settings.JavaScriptEnabled=true;
settings.UseWideViewPort=true;
settings.LoadWithOverviewMode=true;
settings.JavaScriptCanOpenWindowsAutomatically=true;
settings.DomStorageEnabled=true;
settings.SetRenderPriority(WebSettings.RenderPriority.High);
settings.BuiltInZoomControls=false;
settings.JavaScriptCanOpenWindowsAutomatically=true;
SetWebChromeClient(新的WebChromeClient());
settings.AllowFileAccess=true;
settings.SetPluginState(WebSettings.PluginState.On);
LoadDataWithBaseURL(null,html,“text/html”,“UTF-8”,null);

在清单文件中添加internet权限并启用hardwareAccelerated=“true”。有关更多详细信息,请参见我的博客:

更新:下面的内容仍然正确,但现在可用

到目前为止,在安卓系统上播放YouTube视频最简单的方法就是简单地启动本地安卓YouTube应用程序。当然,如果你没有使用经过认证的谷歌设备,而该设备没有谷歌应用程序的补充,那么这将失败。(KindleFire可能是此类设备的最大例子)。这种方法的问题在于,当视频结束时,用户不会自动回到你的应用程序;他们必须按下“后退”按钮,此时你可能已经失去了他们

作为第二种选择,您可以使用MediaPlayer API播放YouTube视频。但这种方法有三个警告:

1) 您需要调用YouTube的GData webservice API,并将视频的ID传递给它。您将获得大量元数据,以及应传递给MediaPlayer以播放H.264编码流的RTSP URL。这可能就是您尝试使用MediaPlayer失败的原因;您可能没有使用正确的URL进行流式传输

2) GData/MediaPlayer方法只能播放低分辨率内容(176x144或类似)。这是YouTube为防止内容被盗而故意做出的决定。当然,这并不能提供非常令人满意的体验。为了获得更高分辨率的流,存在后门黑客攻击,但并非所有Android版本都支持这些攻击,使用它们违反了YouTube的服务条款

3) RTSP流可能会被某些内部网络/防火墙阻止,因此此方法可能不适用于所有用户

第三个选项是在应用程序中嵌入WebView。在这里,您可以采取两种方法:

1) 您可以嵌入Flash对象并运行标准桌面Flash player for YouTube。您甚至可以使用Javascript API来控制播放器,并将事件中继回本机Android应用程序。这种方法工作得很好,但不幸的是,Flash在Android平台上被弃用,不适用于Android 4.1及更高版本

2) 您可以嵌入
标签,通过HTML5播放YouTube。对这一点的支持因Android的不同版本而异。它在安卓4.0及更高版本上运行良好;早期版本对HTML5的支持有些参差不齐。因此,根据您的应用程序必须支持的安卓版本,您可以采取混合方法,在安卓4.x或更高版本上嵌入HTML5,在所有早期版本的安卓上嵌入Flash

StackOverflow上有几个关于使用HTML5播放YouTube视频的帖子;它们都没有真正描述你必须在一个地方遵循的整个过程。以下是其中几个的链接:

在未来几周/几个月内,所有这些都将变得非常容易;在Google I/O 2012上,他们展示/演示了一个新的用于Android的YouTube API,该API将支持在您的应用程序中直接嵌入YouTube内容,并完全支持Android 2.2(截至本文撰写之时,大约95%的Android用户群)。它到达的速度不够快


谢谢你的回答

对于xamarin表单,您可以使用HtmlWebViewSource 在我的虚拟机中:

public HtmlWebViewSource VideoSource { get; set; }
在构造函数中:

 VideoSource = new HtmlWebViewSource();
            VideoSource.Html = @"<html><body>  <div style=' position: relative; padding-bottom: 56.25%; padding-top: 25px;'> <iframe style='position: absolute; top: 0; left: 0; width: 100%; height: 100%;'  src='https://www.youtube.com/embed/bVdfj7HXuXE' frameborder='0' allowfullscreen></iframe></div> </body></html>";
VideoSource=新的HtmlWebViewSource();
VideoSource.Html=@;
我认为:

 <WebView VerticalOptions="Fill"
                 HorizontalOptions="Fill"
                 Source="{Binding VideoSource}"
            />

首先,当您单击共享时,必须复制视频youtube上方的链接,然后选择集成并选择youtube视频的src

然后在您的c语言中创建:

你会在网络视图中看到视频

WebView webview = FindViewById<WebView>(Resource.Id.webView1);
        video =("the src of the youtube video");
        var uri = Android.Net.Uri.Parse(video);
        WebSettings settings = webview.Settings;
        settings.JavaScriptEnabled = true;
        webview.SetWebChromeClient(new WebChromeClient());
        webview.LoadUrl(video);
WebView-WebView=findviewbyd(Resource.Id.webView1);
视频=(“youtube视频的src”);
var uri=Android.Net.uri.Parse(视频);
WebSettings=webview.settings;
settings.JavaScriptEnabled=true;
SetWebChromeClient(新的WebChromeClient());
webview.LoadUrl(视频);

谢谢,但我如何在我的活动中实现?对不起,我不知道这是Android。但是这种方法应该非常相似不,谢谢-它非常混乱,在模拟器上不起作用:-)