2012-01-08 2 views
1

私は、ページの1つがウェブサイトのブログを表示するアプリケーションに取り組んでいます....私はすべてをUITableViewにロードするための配列に解析しました。私は理想的には、YouTube動画からのサムネイル画像をTableViewセルに表示したいと思います...ただし、解析されたコードには動画の埋め込みコードのみが含まれています....NSArrayの解析されたURLを編集します。

Soo ....どのようにすることができますか?私のようなもの取る:

http://www.youtube.com/v/videoID?version=3&feature=player_detailpage 

をし、それを変更します。

http://img.youtube.com/vi/videoID/1.jpg 

または可能性だけで正しい周囲のURLの文字列にロードするVIDEOIDを解析する方法はありますか?次のようなもの:

search:@"//embed/[onlytakethevideoID]" 

ありがとうございます!

答えて

1

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がパスの同じ部分にある限り、大丈夫です。

$theUrlは、実際のURLで置換されていなければならない
substring-before(substring-after($theUrl, 'http://www.youtube.com/v/'), 
       '?' 
       ) 

+0

これは私が使い終わったアプローチです。私のURLのビデオIDの長さを変えて少しうまくいった...ありがとう! –

0

あなたが求めているように思われるのは、videoIDを抽出する方法です。私は、YouTubeのURLスキームを知らないが、それはあなたが上記の投稿したもののようだ場合、あなたは単なる文字列から(26 + lengthOfVideoID)を介して文字26を抽出し、新しい文字列を構築することができ、このような:

NSRange videoIDRange = { 26, 26 + kVideoIDLength }; 
NSString* videoID = [youTubeLink substringWithRange:videoIDRange]; 
NSString* newURL = [NSString stringWithFormat:@"http://img.youtube.com/vi/%@/1.jpg", videoID]; 

それはあなたが探しているものですか?

+0

これは絶対にありました!ありがとう! –

+0

{26、26 + kVideoIDLength}を使用して26から37(kVideoIDLength = 11)が返されました。範囲を{26、11}に変更すると正しい範囲が返されました。再度、感謝します! –

+0

おっと!申し訳ありません。良いキャッチ。 – user1118321

0

動画ID列は、単一のXPath式をevaluationgの結果として得ることができます。

関連する問題