2014-09-25 71 views
0

我不得不从Youtube链接视频ID,并把它传递给用于提取视频ID的mediaplayer.My代码从Youtube提取VideoID的网址

namespace Sample 
{ 
    public partial class VideoPage : PhoneApplicationPage 
    { 
     Movie movie; 

     // Constructor 
     public VideoPage() 
     { 
      InitializeComponent(); 
      var app = App.Current as App; 
      movie = app.selectedMovie; 
      string video = movie.MovieWatchLink;//MoviewatchLink contains youtube url and I was storing it in video// 
      string a = video.ToString().Remove(0, 32); 
      movie.MovieId = a.Substring(0, 11); 
     } 

     protected async override void OnNavigatedTo(NavigationEventArgs e) 
     { 
      var url = await YouTube.GetVideoUriAsync(movie.MovieId, YouTubeQuality.Quality480P); 
      System.Diagnostics.Debug.WriteLine(url); 
      player.Source = url.Uri; 
     }  
    } 
} 

这是工作非常细的类型[https://www.youtube.com/watch?v=SLUbJtlBtHM]

的网址

而不是网址类型的工作http://youtu.be/RjqEgSW7F9w

http://www.youtube.com/movie?v=VPUMDrBjzC4

请告诉我,我怎么能提取VideoI d来自以上两种url类型。我的feed包含所有三种类型的url,我不知道如何从中提取。

+0

我认为对于短网址,你可以通过使用任何可用的API,例如[Longurl.org(HTTP展开:// longurl.org)。 虽然我不确定第三种类型的网址。我试图点击该链接,似乎又重定向到第一种类型的网址。所以我认为你可以把'电影'换成'观看'。 – ssakash 2014-09-25 12:46:49

+0

使用正则表达式匹配它,然后拆分字符串。 http://msdn.microsoft.com/en-us/library/e7sf90t3%28v=vs.110%29.aspx – 2014-09-26 01:50:18

回答

0

我会用某种URL解析器去这里,而不是靠人品与Substring计数等,可惜System.Uri给你什么的查询字符串解析和HttpUtility.ParseQueryString不可用在Windows Phone 8

你可以试试我Flurl库,它是便携式的,将帮助你在这两种情况下:

using Flurl; 

var url = new Url(movie.MovieWatchLink); 
if (url.Path.StartsWith("http://www.youtube.com")) 
    movie.MovieId = url.QueryParams["v"]; 
else if (url.Path.StartsWith("http://youtu.be")) 
    movie.MovieId = url.Path.Split('/').Last(); 
+0

Thankyou.I出现错误。无法找到类型或名称空间名称'url'(是你是否缺少使用指令或程序集引用?)你能否告诉我要添加哪个名称空间或程序集? – deepu 2014-09-26 04:15:45

+0

它在Flurl命名空间中。你是否从[Nuget]安装了Flurl(https://www.nuget.org/packages/Flurl/)?如果它在你的项目中,就像在我的例子中那样添加'使用Flurl;'。 – 2014-09-26 12:50:42

+0

我已经在我的项目中有了Nuget,并且也进行了更新。但是从nuget中嵌入Flurl的过程与您提供的链接中提到的不同。您可以告诉我锄头从Nuget安装Flurl。 – deepu 2014-09-27 05:57:04