YouTube videos inside UITableView iPhone App

I currently have a tableview with youtube videos embedded inside of the custom cells.

I did this because from my research it seemed like the only way to allow the videos to load without leaving my application.

The problem is this:

The thumbnails take a while to load.

As I scroll down the list of videos, it keeps having to load the thunbnails.

If I scroll back up...it tries to load the video thumbnails yet again.

Has anyone got any suggestions on either better ways of doing this, or ways of getting the table cells to keep the data and not replace it?

My code looks like this:

CustomVideoCell *cell = (CustomVideoCell *)[tableView dequeueReusableCellWithIdentifier:@"CustomVideoCell"];

if (cell == nil) {

UIViewController *temporaryController = [[UIViewController alloc] initWithNibName:@"CustomVideoCell" bundle:nil];

cell = (CustomVideoCell *)temporaryController.view;

[temporaryController release];


GDataEntryBase *entry = [[self.feed entries] objectAtIndex:indexPath.row];
NSString *title = [[entry title] stringValue];
NSString *videoID = [[(GDataEntryYouTubeVideo *)entry mediaGroup] videoID];


NSString *htmlString = 
[
 [NSString alloc] 
 initWithFormat:@"<html><head><meta name = \"viewport\" content = \"initial-scale = 2.0, user-scalable = no, width = 110\"/></head><body style=\"background:#000;margin-top:0px;margin-left:0px\"><div><object width=\"110\" height=\"90\"><param name=\"movie\" value=\"http://www.youtube.com/v/%@&f=gdata_videos&c=ytapi-my-clientID&d=nGF83uyVrg8eD4rfEkk22mDOl3qUImVMV6ramM\"></param><param name=\"wmode\" value=\"transparent\"></param><embed src=\"http://www.youtube.com/v/%@&f=gdata_videos&c=ytapi-my-clientID&d=nGF83uyVrg8eD4rfEkk22mDOl3qUImVMV6ramM\" type=\"application/x-shockwave-flash\" wmode=\"transparent\" width=\"110\" height=\"90\"></embed></object></div></body></html>", 
 videoID, videoID
 ];


[[[cell.web subviews] lastObject] setScrollEnabled:NO];
[cell.web loadHTMLString:htmlString baseURL:[NSURL URLWithString:@"http://www.website.com"]];

cell.title.text = title;

Cheers

5
задан Kshitiz Ghimire 6 March 2011 в 11:57
поделиться