我正在开发一个应用程序,其中一个页面显示了一个网站博客....我已将所有内容解析为数组以加载到UITableView中。我想在TableView单元格中显示来自YouTube视频的缩略图...但是解析后的代码只包含视频的嵌入代码....
Soo ......问题是如何才能采取类似的措施:
http://www.youtube.com/v/videoID?version=3&feature=player_detailpage
并将其更改为:
http://img.youtube.com/vi/videoID/1.jpg
或者可能只是一种解析videoID加载到具有正确周围URL的字符串的方法?类似的东西:
search:@"//embed/[onlytakethevideoID]"
提前致谢!
答案 0 :(得分:1)
从URL中获取子字符串是一种脆弱的方法,因为Google可以随时更改其URL方案。
相反,请考虑创建一个NSURL
对象并从中获取pathComponents
数组。该路径包含您的视频ID,可用于构建新网址:
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]];
我想你会发现这不太可能打破。谷歌可以更改他们的URL主机,方案等,但只要视频ID在路径的同一部分,你应该没问题。
答案 1 :(得分:0)
您似乎要问的是如何提取视频ID。我不知道YouTube的网址方案,但如果它与您上面发布的内容一样,您只需从字符串中提取字符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];
这就是你要找的东西吗?
答案 2 :(得分:0)
视频IF字符串可以作为评估单个XPath表达式的结果获得:
substring-before(substring-after($theUrl, 'http://www.youtube.com/v/'),
'?'
)
$theUrl
应替换为实际的网址。