我正在开发一个应用程序,其中一个页面显示了一个网站博客……我已经将所有内容解析成数组,加载到UITableView中。理想情况下,我想在TableView cells...however中显示YouTube视频的缩略图,解析后的代码只包含视频的嵌入代码……
Soo....the的问题是,我如何才能获得如下内容:
http://www.youtube.com/v/videoID?version=3&feature=player_detailpage
并将其更改为:
http://img.youtube.com/vi/videoID/1.jpg
或者可能是一种只解析videoID以加载到具有正确周围URL的字符串的方法?类似于:
search:@"//embed/[onlytakethevideoID]"
提前感谢!
发布于 2012-01-08 10:18:22
从URL中提取一个子串是一种脆弱的方法,因为Google可以随时改变他们的URL方案。
相反,请考虑创建一个NSURL
对象并从中获取pathComponents
数组。该路径包含您的视频ID,可用于构建新的URL:
NSURL *myURL = [NSURL URLWithString:@"http://www.youtube.com/v/videoID?version=3&feature=player_detailpage"];
NSArray *myURLPathComps = [myURL pathComponents];
NSString *myVideoID = [myURLPathComps objectAtIndex:[myURLPathComps count]-1];
NSURL *myNewURL = [NSURL URLWithString:[NSString stringWithFormat:@"http://img.youtube.com/vi/%@/1.jpg", myVideoID]];
我想你会发现这是不太可能打破的。Google可以改变他们的URL主机、方案等,但只要视频ID在路径的相同部分,你就应该没问题。
发布于 2012-01-08 09:25:59
看起来您要问的是如何提取videoID。我不知道YouTube的url方案,但如果它像你上面发布的那样,你可以从字符串中提取26到(26 + lengthOfVideoID)个字符,然后构造一个新的字符串,如下所示:
NSRange videoIDRange = { 26, 26 + kVideoIDLength };
NSString* videoID = [youTubeLink substringWithRange:videoIDRange];
NSString* newURL = [NSString stringWithFormat:@"http://img.youtube.com/vi/%@/1.jpg", videoID];
这就是你要找的吗?
发布于 2012-01-08 13:47:52
VideoID字符串可以作为对单个XPath表达式求值的结果获得
substring-before(substring-after($theUrl, 'http://www.youtube.com/v/'),
'?'
)
其中$theUrl
应替换为实际的Url。
https://stackoverflow.com/questions/8774494
复制相似问题