【发布时间】:2025-12-27 16:05:12
【问题描述】:
我正在尝试制作一个播放器,它从 tableview 获取一个 url(尚未完成)。 我开始尝试使用 MPMediaPlayerController 使播放器工作。
NSString *video = [NSString stringWithFormat:@"http://www.youtube.com/watch?v=GurkREc-q4I"];
NSURL *url = [NSURL URLWithString:video];
MPMoviePlayerController *moviePlayerController = [[MPMoviePlayerController alloc]initWithContentURL:url];
[moviePlayerController.view setFrame:[self.view frame]];
[self.view addSubview:moviePlayerController];
[moviePlayerController setShouldAutoplay:YES];
[moviePlayerController prepareToPlay];
moviePlayerController.fullscreen = YES;
[moviePlayerController play];
当我尝试将 moviePLayer 添加为子视图时,我收到以下警告:不兼容的指针类型将“MPMoviePlayerController *”发送到“UIView *”类型的参数。
另外,当我打开视图时,应用程序会关闭,在控制台中我们会看到:
2014-03-04 18:26:50.696 FavVideos[6181:70b] -[MPMoviePlayerController superview]:无法识别的选择器发送到实例 0xa63c470 2014-03-04 18:26:50.735 FavVideos[6181:70b] * 终止应用程序由于 未捕获的异常“NSInvalidArgumentException”,原因: '-[MPMoviePlayerController superview]: 无法识别的选择器发送到 实例 0xa63c470'
关于我做错了什么有什么想法吗?
谢谢,从现在开始。
编辑:
好的,我看到了我正在做什么来得到错误和“崩溃”。
这里:
[self.view addSubview:moviePlayerController];
我改成:
[self.view addSubview:moviePlayerController.view];
不再有警告或崩溃。 但是播放器只是黑屏,有什么想法吗?
【问题讨论】:
-
我在一些网站上看到,当媒体播放器检测到一个 youtube 网址时,它会尝试启动该应用程序。我可以用媒体播放器在我的应用中播放这个视频吗?
标签: ios objective-c mpmediaplayercontroller