在我的应用程序中,我从UITableview中的服务器获取视频链接。所有这些链接都存储在文本文件中的Sever上,我从服务器逐个获取所有这些链接并将每个链接分配给UITableview中的单元。这些我成功完成了但我希望当我点击UITableview中的任何一个单元格时,它会在下一个视图中播放视频。这是我的代码。
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
nextview *dvController = [[nextview alloc] initWithNibName:@"nextview" bundle:nil];
[self presentModalViewController:dvController animated:YES];
strFile = [Listdata objectAtIndex:indexPath.row];
NSLog(@"test=%@",strFile);
[dvController release];
}
在下一个视图中,我将存储在“strFile”中的链接分配给MPMoviePlayerController,这里是我的代码。
-(void)viewDidAppear:(BOOL)animated
{
NSLog(@"mytest=%@",strFile);
NSURL *url = [NSURL URLWithString:strFile];
NSLog(@"myurl=%@",url);
myplayer = [[MPMoviePlayerController alloc] initWithContentURL:url];
myplayer.view.frame = CGRectMake(0, 0,900, 700);
[self.view addSubview:myplayer.view];
[myplayer play];
}
在NSlog中,我看到链接,但它没有在MPMoviePlayerController中播放。任何人都可以指导我提前做出错误。
答案 0 :(得分:2)
@prince:你能告诉我你在NSLog中得到什么网址吗?我认为你错误地得到了网址。
我们可以通过
获取网址 url = [NSURL fileURLWithPath:strUrl];
否则
url = [NSURL URLWithString:strUrl];
尝试一次。
答案 1 :(得分:1)
您可能不应该设置框架并添加到子视图中,您可能会对MPMoviePlayerViewController
感到困惑。试试这个......
-(void)viewDidAppear:(BOOL)animated {
NSLog(@"mytest=%@",strFile);
NSURL *url = [NSURL URLWithString:strFile];
NSLog(@"myurl=%@",url);
myplayer = [[MPMoviePlayerController alloc] initWithContentURL:url];
myplayer.scalingMode = MPMovieScalingModeAspectFill;
[myplayer play];
}
编辑忽略我的代码,您无法直接在MPMoviePlayerController中播放YouTube视频。请检查此帖子,而不是Play YouTube videos with MPMoviePlayerController instead of UIWebView
答案 2 :(得分:0)
到youtube视频播放内部应用程序是使用来自Youtube的嵌入标记创建一个UIWebView,用于要作为UIWebView内容播放的电影。 UIWebView将检测到嵌入对象是Youtube链接,并且Web视图的内容将是视频的youtube预览。当您的用户点击预览时,视频将显示在MPMoviePlayerController中。试试这个链接:
http://iphoneincubator.com/blog/audio-video/how-to-play-youtube-videos-within-an-application
不幸的是,没有办法用MPMoviePlayerController直接播放youtube视频,因为youtube没有公开直接链接到视频文件。