2012-05-10 9 views
6

Làm cách nào để có video YouTube trong UITableViewCell và cách xử lý nút Done của video UIWebView phát video?Cách tải video được nhúng trên youtube vào chế độ xem bảng và nhận được sự cố khi xử lý nút "Xong"

Tôi đã nhúng video vào chế độ xem, nhưng giống như trên hình ảnh. Và tôi muốn Done -button này trong hình ảnh này:

Screenshot

Tôi muốn mở một màn hình khác khi tôi trở về giao diện, không phải là quan điểm trước đó.

-(void)viewDidLoad { 
    [super viewDidLoad]; 
    videoURL = [[NSString alloc]init]; 
    videoURL [email protected]"http://www.youtube.com/watch?v=aE2b75FFZPI"; 
    [self embedYouTube:videoURL frame:CGRectMake(10, 85, 300, 180)]; 
} 


- (void)embedYouTube:(NSString*)url frame:(CGRect)frame { 
    NSString* embedHTML = @"\ <html><head>\ <style type=\"text/css\">\ body {\ background-color: transparent;\ color: red;\ }\ </style>\ </head><body style=\"margin:0\">\ <embed id=\"yt\" src=\"%@\" type=\"application/x-shockwave-flash\" \ width=\"%0.0f\" height=\"%0.0f\"></embed>\ </body></html>"; 
    NSString* html = [NSString stringWithFormat:embedHTML, url, frame.size.width, frame.size.height]; 
    if (videoView == nil) { 
     videoView = [[UIWebView alloc] initWithFrame:frame]; 
     [self.view addSubview:videoView]; 
     NSLog(@"html%@",html); 
    } 

    [videoView loadHTMLString:html baseURL:nil]; 
} 

Tôi cần trợ giúp về vấn đề này. Tôi đã thực hiện một tìm kiếm, nhưng tôi đã không nhận được bất cứ điều gì.

+0

Tôi có hiểu chính xác bạn không - Bạn muốn các ô xem bảng đại diện cho từng video trên youtube? toàn màn hình? tại sao bạn muốn làm điều đó? –

+0

Tôi đã thực hiện với Bảng Và muốn biết cách xử lý nút thực hiện video youtube? – Harish

+0

Nút Done không hiển thị? Hay chỉ không trả lời? Bạn đã thử thông báo nút Done chưa? http://stackoverflow.com/a/8228490/894671 –

Trả lời

0

Vì điều này đã không được trả lời một chút, tôi nghĩ tôi có thể đưa ra đề xuất. Kết quả cuối cùng tôi tin là giống như những gì bạn đang tìm kiếm nhưng con đường để đến đó có một chút khác biệt.

Vì vậy, từ sự hiểu biết của tôi, bạn muốn có bộ điều khiển UITableView để hiển thị danh sách các video trên YouTube phát khi bạn nhấp vào chúng. Đây là cách tôi xử lý kịch bản này trong một trong các ứng dụng của tôi.

  1. Bạn cần nhận nguồn cấp dữ liệu RSS của video bạn muốn trong danh sách. Điều đó khá dễ dàng ... nếu nó dành cho người dùng định dạng là http://www.youtube.com/rss/user/{USERNAME}/videos.rss
  2. Vì vậy, từ đó bạn cần phải phân tích cú pháp nguồn cấp dữ liệu RSS vào danh sách các đối tượng có tiêu đề, mô tả, hình thu nhỏ và liên kết đến video. Tất cả điều này được cung cấp trong RSS và tôi đã sử dụng NSXMLParser để thực hiện công việc.
  3. Khi bạn có danh sách các đối tượng giá trị tốt để làm việc, tất cả những gì bạn cần làm là tắt bảng MPMoviePlayerViewController và chuyển URL đó để phát phim.

Thực hiện didSelectRowAtIndexPath

- (void) tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath 
{ 
    /** self.items is just a mutable array of video objects that is the underlying 
     datasource for the table. The Video object is just a simple value object 
     I created myself */ 
    Video *video = [self.items objectAtIndex:[indexPath row]]; 

    MPMoviePlayerViewController *mp = [[MPMoviePlayerViewController alloc] initWithContentURL:[NSURL URLWithString:video.video]]; 

    [self presentMoviePlayerViewControllerAnimated:mp]; 

    [mp release]; 
} 

Dưới đây là những gì các giao diện cho lớp video của tôi trông giống như

@interface Video : NSManagedObject { 

@property (nonatomic, retain) NSString * title; 
@property (nonatomic, retain) NSString * link; 
@property (nonatomic, retain) NSString * comments; 
@property (nonatomic, retain) NSString * thumbnail; 
@property (nonatomic, retain) NSString * pubDate; 
@property (nonatomic, retain) NSString * video; 
@property (nonatomic, retain) NSString * guid; 
@property (nonatomic, retain) NSString * desc; 

@end 

Đó là khá nhiều nó, một cách thoải mái dễ dàng để hiển thị video YouTube trong một UITableViewController. Tôi sẽ không đi sâu vào phân tích cú pháp XML, có rất nhiều tài liệu hướng dẫn cách thực hiện điều đó. Tôi chỉ cần làm một google nhanh chóng và blog này thực sự được vào các loại hạt và bu lông của những gì tôi đang nói về:

http://useyourloaf.com/blog/2010/10/16/parsing-an-rss-feed-using-nsxmlparser.html

Hy vọng điều này giúp bạn đi. Tôi biết điều này không giải quyết việc đánh dấu vào một WebView, nhưng tôi nghĩ rằng bạn sẽ tìm thấy cách này trực quan hơn một chút và vì không có nhiều câu trả lời ... hy vọng nó sẽ giúp bạn và chạy.

0

Điều bạn đang muốn làm liên quan đến việc gây rối với trình phát đa phương tiện được UIWebView sử dụng. Điều này có thể được thực hiện bằng cách giám sát các thông báo uiviewanimation và sau đó đi qua một loạt các subviews nhưng nó sẽ liên quan đến việc sử dụng các phương thức riêng và do đó không được khuyến khích đặc biệt.Tôi khuyên bạn nên sử dụng câu trả lời của jerrylroberts và nhận các liên kết trực tiếp tới video YouTube.