Iphone 无法从youtube流媒体

Iphone 无法从youtube流媒体,iphone,video-streaming,iostream,Iphone,Video Streaming,Iostream,当用户在my tableview中选择一行时,我正在尝试从youtube流式传输视频, 代码如下: - (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath { NSString *videoURLString = [self.listaVideos objectAtIndex:[indexPath row]]; NSURL *v

当用户在my tableview中选择一行时,我正在尝试从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");
}
错误:开始/结束外观转换的调用不平衡。

尝试删除

    [self.view addSubview:self.theMovie.view];
您似乎正在将其添加到视图中,然后显示它。如果您不想显示,请删除该行,而不是MPMoviePlayServiceController无法流式播放YouTube视频


哦,还有阿米特·沙阿(Amit Shah)所说的删除addSubview:将处理不平衡的呼叫,但不会处理无法播放视频的问题。

下面是从youtube url下载视频的代码。如果你真的想从youtube上下载视频,依靠下面的代码,这是非常容易的&您不必太在意事件处理、缓冲等

@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"]];

}
希望这能解决您的问题: