我正在try 使用MPMoviePlayerController来传输一些youTube视频,但我遇到了一些问题.我使用的代码非常简单,我可以玩.通过将URL传递到initWithContentURL来播放m4v视频.当我启动电影播放器时,播放器出现了,但大约20秒后就消失了.当我在模拟器中try 时,我得到一个警告视图,表明服务器配置不正确.为了从谷歌获得特定类型的视频源,我需要通过URL传递一个参数吗?

NSURL *videoURL = [NSURL URLWithString:@"http://www.youtube.com/v/HGd9qAfpZio&hl=en_US&fs=1&"];
MPMoviePlayerController *moviePlayer;
moviePlayer = [[MPMoviePlayerController alloc] initWithContentURL:videoURL];

[moviePlayer play];

我还try 了以下URL

我还看到了参数&format=1,并试图将其添加到两个字符串的末尾,但没有成功.

推荐答案

在你自己的应用程序中播放youtube视频的唯一方法是从youtube为你想播放的电影创建一个带有嵌入标签的UIWebView,作为UIWebView's内容.UIWebView将检测到嵌入的对象是Youtube链接,web视图的内容将是视频的Youtube预览.当用户单击预览时,视频将在MPMoviePlayerController中显示.这是Muxecoid提供的链接(how to play youtube videos within an application)中描述的技术,据我所知,这是在应用程序中播放youtube视频的唯一方法.您仍然可以通过将Youtube URL传递到-[UIApplication openURL:]来启动Youtube应用程序,但这当然会关闭您自己的应用程序,这通常是不可取的.

不幸的是,没有办法直接播放MPMoviePlayerController的YouTube视频,因为YouTube不公开视频文件的直接链接.

Ios相关问答推荐

将 SwiftUI 与 @AppStorage 和动态函数调用一起使用

将flutter android项目导入iOS

SwiftUI NavigationView navigationBarTitle LayoutConstraints 问题

Xcode 错误:无法为开发准备设备

更新到 iOS 14 和 Xcode 12 后应用启动时间变慢

从 Xcode 11.1 升级到 Xcode 11.2 后,应用程序因 _UITextLayoutView 而崩溃

从 UIScrollview 中删除内容和框架布局指南

UITableView 行动画持续时间和完成回调

SwiftUI 无法在 HStack 的 Spacer 中点击

-1103 错误域=NSURLErrorDomain 代码=-1103“资源超过最大大小”iOS 13

Xcode 缺少支持文件 iOS 12.2 (16E227)

Flutter:如何在代码中的每个列表项之间添加分隔符?

如何在 iOS 上以编程方式截取屏幕截图

Xcode 10.2.1 命令 PhaseScriptExecution 失败,退出代码为非零

将深层链接传递到 iOS 模拟器?

光标外的 iOS 11 Safari bootstrap 模式文本区域

Xcode 9 - “固定宽度约束可能导致剪辑”和其他本地化警告

`pod repo update` 究竟是做什么的?

使用 React Native 时,我有哪些存储数据的选项? (iOS 和安卓)

如何在 Xcode 9 中使用 iOS 11、Apple TV 4K 等进行无线调试?