新视图控制器中的电影播放器​​不会从动态 url iPhone iOS 播放电影

Posted

技术标签:

【中文标题】新视图控制器中的电影播放器​​不会从动态 url iPhone iOS 播放电影【英文标题】:Movie player in new view controller does not play movie from dynamic url iPhone iOS 【发布时间】:2011-10-23 13:06:18 【问题描述】:

我有一个 UITableView 项目,其中填充了从 XML 解析的电影数据。当我按下行时,会显示新的视图控制器。我已经分配了所有属性来接收新视图控制器中的信息,例如:电影的标题、描述和 url 字符串。当我 NSLog 这些值时,它看起来很好。但是这个新视图控制器的线索是自动显示来自特定 url 的电影。下面是我使用的代码。

videoURL = [NSURL URLWithString:urlString];

urlString 是我从 XML 获取电影的地址

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

videoPlayer = [[MPMoviePlayerController alloc] initWithContentURL:videoURL];
[self.view addSubview:videoPlayer.view];
videoPlayer.view.frame = CGRectMake(0, 0, 250, 300);  
[videoPlayer play];

如果有这样的静态分配的url字符串

NSString *url = @"http://www.myserv.com/video.mp4";

videoURL = [NSURL URLWithString:url];

一切正常。如果有人知道如何解决我的问题,我将不胜感激。

【问题讨论】:

在 URL 中添加一些调试日志——也就是说,在 videoUrl = [NSURL URLWithString:urlString]; 之前添加一个 NSLog(@"the URL: %@", urlString); 我已经做到了。 “url”的 NSLog 是电影目的地的正确字符串。但是在NSURL *videoURL = [NSURL URLWithString:urlString ]之后;我正在检查日志,videoURL 的值为(null) 这表明 urlString 不能转换为正确的 NSURL -> 您的字符串可能转义不正确。 【参考方案1】:

在将字符串转换为 URL 之前,您需要将以下方法应用于字符串

- (NSString *)stringByAddingPercentEscapesUsingEncoding:(NSStringEncoding)encoding

【讨论】:

最后证明你的小费很有帮助。谢谢!

以上是关于新视图控制器中的电影播放器​​不会从动态 url iPhone iOS 播放电影的主要内容,如果未能解决你的问题,请参考以下文章

iOS Swift 在视图关闭时停止 MoviePlayer

使用 url ios 6 播放视频

从 MPMediaItem 播放电影 (iPad/IOS5)

MPMoviePlayerController 播放完成后不会自动关闭电影(ios 6)

使用 AVPLayer 实现媒体播放器以在 Swift 4 的模态视图控制器的弹出视图中播放来自远程 url 的音频

Swift:长按被电影播放取消。如何坚持长按?