2012-03-23 6 views
0

Im Versuch, ein Video von YouTube zu streamen, wenn der Benutzer eine Zeile in meinem Tableview wählen, heres der Code:kippte Strom von youtube

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath 
{   

    NSString *videoURLString = [self.listaVideos objectAtIndex:[indexPath row]]; 
     NSURL *videoURL = [NSURL URLWithString:videoURLString]; 

     self.theMovie = [[MPMoviePlayerViewController alloc] initWithContentURL:videoURL]; 

     [[NSNotificationCenter defaultCenter] addObserver:self 
               selector:@selector(moviePlayBackDidFinish:) 
                name:MPMoviePlayerPlaybackDidFinishNotification 
                object:[self.theMovie moviePlayer]]; 

     [self.view addSubview:self.theMovie.view]; 
     [self.theMovie setWantsFullScreenLayout:NO]; 
     [self presentMoviePlayerViewControllerAnimated:theMovie]; 
     [[self.theMovie moviePlayer] play]; 
} 



-(void)moviePlayBackDidFinish:(NSNotification*)notification 
{ 
    NSLog(@"ENded"); 
} 

Und der Fehler: Unbalanced calls to begin/end appearance transitions for <MPMoviePlayerViewController: 0x7a256a0>.

Antwort

0

Versuchen

Entfernen
[self.view addSubview:self.theMovie.view]; 

Sie scheinen die Ansicht hinzuzufügen, und präsentieren sie dann. (Wenn Sie es nicht präsentieren möchten, entfernen Sie stattdessen diese Zeile.)

0

MPMoviePlayerViewController können keine YouTube-Videos streamen.

Oh, was Amit Shah auch gesagt hat (das Entfernen der addSubview: kümmert sich um die unausgeglichenen Anrufe, aber nicht die Unfähigkeit, Videos abzuspielen).

0

Unten ist der Code, den das Video von youtube url.Wenn Sie wirklich nach dem Streaming des Videos von Youtube suchen, dann verlassen Sie sich auf unten Code ist es sehr einfach & Ereignis Sie müssen nicht viel kümmern Event Handling, Pufferung etc ...

@interface VideoPlayerContrl : UIViewController { 

     IBOutlet UIWebView *youtubeVideo; 

} 

// Implement viewDidLoad to do additional setup after loading the view, typically from a nib. 
- (void)viewDidLoad { 
    [super viewDidLoad]; 

    NSString *htmlString = @"<html><head>\n" 
    "<meta name = \"viewport\" content = \"initial-scale = 1.0, user-scalable = no, width = 212\"/></head>\n" 
    "<body style=\"background:#F00;margin-top:0px;margin-left:0px\">\n" 
    "<div><object width=\"212\" height=\"172\">\n" 
    "<param name=\"movie\" value=\"http://www.youtube.com/v/oHg5SJYRHA0&f=gdata_videos&c=ytapi-my-clientID&d=nGF83uyVrg8eD4rfEkk22mDOl3qUImVMV6ramM\"></param>\n" 
    "<param name=\"wmode\" value=\"transparent\"></param>\n" 
    "<embed src=\"http://www.youtube.com/v/oHg5SJYRHA0&f=gdata_videos&c=ytapi-my-clientID&d=nGF83uyVrg8eD4rfEkk22mDOl3qUImVMV6ramM\"\n" 
    "type=\"application/x-shockwave-flash\" wmode=\"transparent\" width=\"247\" height=\"178\"></embed>\n" 
    "</object></div></body></html>\n"; 

    [youtubeVideo loadHTMLString:htmlString baseURL:[NSURL URLWithString:@"https://s3.amazonaws.com/adplayer/colgate.mp4"]]; 

} 

Hoffnung, dass Ihr Problem gelöst haben würde :)