MPMoviePlayerController 与启动 UIWebView 来流电影的优缺点

2024-01-22

我有一位客户拥有 Flash 格式的网络视频内容。我的任务是帮助他们在 iPhone 应用程序中展示视频。

我意识到第一步是将这些视频转换为适合 iPhone 的 Quicktime 格式。

然后我必须帮助客户弄清楚如何或在哪里托管这些文件。如果这很棘手,我认为它们可以在 YouTube 上托管。

不过,我主要关心的是采用哪种方法来传输视频。 MPMoviePlayerController 与使用流的 URL 启动 UIWebView 相比有何优缺点?有什么区别吗?他们中的一个或多或少是宽容的吗?其中之一是更好的用户体验吗?我可能会遇到什么问题吗?

我假设在 iPhone 上播放视频非常容易。尝试两者并使用其中一个作为后备是否合理,或者这会浪费时间吗?我正在尝试安排一下这个时间,所以我很想听听做过这件事的人的真实经验。



编辑:我在这个答案中的原始示例使用 CGRectZero 框架初始化了 webview。这一直适用于 iOS 3.2。从 iOS 4 开始,网络视图必须具有非零帧,否则视频将无法播放。我编辑了下面的示例以反映此更改。


这里接受的答案并不准确。事实上,您可以使用 UIWebView 来流式传输视频,并且在某些方面它比 MPMoviePlayerController 更好。如果您告诉 UIWebView 通过 loadRequest: 请求视频文件(例如 mp4),它将打开一个新窗口并在您的应用程序中流式传输视频。与 MPMoviePlayerController 不同,UIWebView 创建的视频窗口可以旋转为横向或纵向。当视频结束时,用户可以关闭此窗口并返回到您的应用程序。


编辑2:由于您现在可以实现使用 MPMoviePlayerViewController 旋转的视频播放器,我无法再想到使用此答案中描述的技术将 UIWebView 用于视频的原因。


提示:由于 UIWebView 创建自己的窗口来播放视频,因此您甚至不需要将 UIWebView 添加到视图层次结构中。您只需创建 UIWebView 对象并调用 loadRequest: 即可播放视频,而无需将该对象传递给 addSubview:。

self.webView = [[[UIWebView alloc] initWithFrame:[[UIScreen mainScreen] applicationFrame]] autorelease];
NSURL *url = [NSURL URLWithString:@"http://www.jonathancoulton.com/music/thingaweek/CodeMonkey.mp3"];
NSURLRequest *request = [NSURLRequest requestWithURL:url];
[webView loadRequest:request];
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

MPMoviePlayerController 与启动 UIWebView 来流电影的优缺点 的相关文章

  • iPhone 应用程序在 iOS 4 上安装后无法启动,但设备重启后可以运行

    我有一个在 iOS 3 0 3 1 3 上运行良好的应用程序 然而 在测试 iOS 4 SDK 特别构建时 该应用程序的行为很奇怪 安装后 使用 Xcode iTunes 或 iPhone 配置实用程序 应用程序会执行以下两项操作之一 应用
  • UISearchBar 取消按钮没有响应

    我已经实现了搜索栏 一旦用户将焦点放在搜索栏中 它就会显示取消按钮 为此我写了searchBar showsCancelButton YES in my searchBarTextDidBeginEditing方法 在searchBarSe
  • 将小箭头添加到 iPhone TableView 单元格中单元格的右侧

    这应该很简单 我有一个带有 TableView 的 iPhone 应用程序 如何将经典的小箭头添加到每个单元格的右侧 只需设置相应的附件类型的财产UITableViewCell cell accessoryType UITableViewC
  • MPMediaItemPropertyAssetURL 仅针对 iPhone 5s 返回 null

    我一直在使用以下代码从 MPMediaItemPickerController 返回的 MPMediaItem 对象中提取资产 url 以便我可以将音乐文件从用户 iPhone itunes 音乐库复制到文档文件夹进行处理 但在 iPhon
  • 如何在 iPhone 应用程序中使用正则表达式以 , (逗号)分隔字符串

    我必须读取包含三列的 csv 文件 在解析 csv 文件时 我得到了这种格式的字符串克里斯托弗 巴斯 为心爱的国家哭泣 期末论文 电子邮件受保护 cdn cgi l email protection 我想将三列的值存储在一个数组中 所以我使
  • iphone sdk - 调用视图的超级视图的视图控制器的方法

    你好 我如何在当前视图中调用当前视图的超级视图的视图控制器中实现的方法 你能帮我吗 谢谢 通常这是通过代表完成的 让您的视图接口定义一个协议和对某个委托的引用 然后让你的父视图控制器实现这个协议 然后父母会这样做 someView fooD
  • 使用“presentModalViewController”加载视图

    我正在尝试从另一个视图控制器加载临时的滑入视图 我的应用程序的视图控制器的结构如下 Application gt Tab Bar Controller gt TabBarItem gt View Controller 在此视图控制器中 我有
  • 如何将 UIPopoverPresentationController 的高度设置为与 UITableView 相同

    我在我的应用程序上使用 UIPopoverPresentationController 在我的 iPhone 上显示弹出窗口 使用 UIModalPresentationNone 我希望尺寸随着 UITableView 的高度而动态变化 但
  • 方向改变时重新定位控件

    我知道自动布局可用于在方向改变时使尺寸和位置保持一致 当方向改变时 是否可以完全改变布局 例如 请查看下面的纵向模式下简单登录屏幕的线框 现在 如果我旋转设备 我想完全重新定位控件 这种事情可以用自动布局来完成吗 如果没有 我该怎么办 谢谢
  • 使用 AVMutableVideoCompositionLayerInstruction 旋转视频

    我正在 iPhone 4 上使用前置摄像头拍摄视频 并将视频与其他一些媒体资源结合起来 我希望该视频为纵向 所有视频的默认方向都是横向 在某些情况下 您必须手动管理 我正在使用 AVFoundation 特别是 AVAssetExportS
  • iOS:加载时的设备方向

    似乎当我的应用程序加载时 它不知道其当前方向 UIInterfaceOrientation orientation UIDevice currentDevice orientation if orientation UIDeviceOrie
  • 在 iOS 中从 ACAccountStore 获取 Facebook uid?

    您好 我想获取 Facebook 用户的 UIDAC帐户商店在 iOS 6 中 self accountStore ACAccountStore alloc init ACAccountType FBaccountType self acc
  • 如何使用 NSUserDefaults 正确工作(检索值)

    我的代码中有一个简单的方法 如下所示 BOOL isFirstTimeLogin NSString t gName NSString stringWithFormat NSUserDefaults standardUserDefaults
  • 检测 iPhone 是否在运行时运行调试/分发构建

    是否可以在运行时检测正在运行的应用程序是否是通过调试或分发进行编译的 在项目信息中 对于调试配置 添加 DEBUG 预处理器宏 在 GCC 4 2 预处理部分 在代码中 如果您想要包含或不包含某些代码用于调试版本 则可以使用 ifdef 来
  • 如何在 iPhone 上使用带有线程的 sqlite + fdbm 库

    相关这个问题 https stackoverflow com questions 1082554 我想把数据加载放在后台 但是 我收到 库例程调用不按顺序 错误 In 这个所以线程 https stackoverflow com quest
  • 直接在 XCode 中编译 Arm Assembly

    将arm汇编代码编译成xcode的最佳方法是什么 我有生成的那些程序集文件 有没有办法可以将 s 文件直接包含到我拥有的 C 代码中 或者我需要先运行一个预处理器 它将生成 o 文件 我可以将其与我的文件链接 如果是这样的话 在 XCode
  • UIView animateWithDuration:delay: 工作很奇怪

    我在使用 iPhone 动画块时遇到了一个奇怪的问题 这段代码 UIView animateWithDuration 2 delay 0 options 0 animations void controller setBackgroundC
  • 如何在 UIScrollView 中启用缩放

    如何启用缩放功能UIScrollView 答案是here https developer apple com documentation uikit uiscrollview 滚动视图还可以处理内容的缩放和平移 当用户做出捏合或张开手势时
  • ios - 如何声明静态变量? [复制]

    这个问题在这里已经有答案了 C 中声明的静态变量如下 private const string Host http 80dfgf7c22634nbbfb82339d46 cloudapp net private const string S
  • 隐藏选项卡栏项目并对齐其他选项卡项目

    在我的应用程序中 我有 4 个选项卡栏项目 我正在 XIB 文件中添加这 4 个选项卡栏项目 最初我必须显示 3 个选项卡栏项目 同步后我必须在我的应用程序中显示第 4 个选项卡栏项目 因此 为此 我使用以下代码隐藏第四个选项卡栏项目 se

随机推荐

  • Eclipse Juno 加载描述符错误

    我刚刚将 Eclipse 从 Galileo 更新为 Juno 我创建了一个新的工作区并导入了一个基于 Java Spring MVC 的项目 当我打开它时 它开始 加载描述符 然后弹出一条错误消息 加载 mta pfm 的描述符 期间发生
  • SQL查询删除两年以上的记录

    我需要通过从多个表中删除两年以上的记录来清理非常臃肿的 SQL 数据库 做到这一点最有效的方法是什么 您有什么方法可以确定记录的 年龄 吗 即 表中是否有一列代表行的年龄或可用于计算年龄的日期 如果是这样 那应该是一个简单的 DELETE
  • MySql:查找特定记录的行号

    我正在使用一个通用数据面板 该面板可以向该面板提供各种不同的查询 它们可能是从表或视图中选择的简单查询 也可能是用户使用复杂的联接和其他表达式自行定义的复杂查询 我正在尝试修改我的数据面板 以便如果用户选择一条记录 然后对表进行排序 我会找
  • 为什么结合性是运算符的基本属性,而不是优先级的基本属性

    在任何编程语言教科书中 我们总是被告知该语言中的每个运算符如何具有左结合性或右结合性 结合性似乎是任何运算符的基本属性 无论其需要多少操作数 在我看来 我们可以将任何关联性分配给任何运算符 无论我们如何将关联性分配给其他运算符 但为什么会这
  • 在c++中接收USB设备插入的通知/事件/信号

    我已经寻找了一段时间 但一直无法找到这个问题的答案 我正在尝试接收特定 USB 设备的连接通知 这是我所知道的 我运行的是 linux 内核版本 3 2 我有识别 USB 设备所需的 ID 我创建了一个用于读取和写入设备的内核模块 内核模块
  • 为什么不使用基于二进制补码的浮点?

    float64 32 和 16 的 IEEE 754 标准使用有符号尾数和有偏差指数 作为一名设计硬件架构的学生 对我来说 对有效数和指数部分使用二进制补码更有意义 例如 定义 32 位 半精度 浮点数 第一位表示符号 接下来的 8 位 指
  • 系统子程序和 INT 信号问题

    我的 Perl 脚本中有一个 INT 信号处理程序 当 Perl 脚本处于系统调用过程中发送 INT 时 它不会被执行 为什么 考虑 perl5 12 bin perl E cat lt
  • 仅在首次加载时显示对话框

    我目前有一个对话框 每次加载页面时都会自动显示 但是 我有搜索等功能 因此当用户搜索条目时 由于页面正在再次加载 它将再次显示弹出框 如何才能使对话框仅在第一次加载页面时显示 这是我的对话框的 HTML 代码 div title Instr
  • 会话是否用于 REST 身份验证?

    抱歉这个新手问题 这是我第一次尝试实现 REST 接口 在 PHP 中 无论如何 由于 HTTP 协议的无状态本质 最好的做法是什么才能确保 GET user id friends 总是且仅由当前经过身份验证的用户执行 会话通常用作限制 R
  • 如何在 Linux 中使用 chdir 功能?

    我有一个问题 这是我在 testchdir c 文件中的原始代码 include
  • ios 中的 UIActivityViewController 与 UIDocumentInteractionController

    我刚刚读了一些文章UIActivityViewController and UIDocumentInteractionController在 iOS 中 但我对如何使用它们感到非常困惑 因为两者看起来都是一样的 那么 我什么时候使用UIAc
  • 从参数化触发器插件传回结果

    我有 2 个工作 Helper 和 Main 以及单个 jenkins 实例 即主机和执行器 帮助程序管理第 3 方资源并为主要作业做好准备 准确地说 它为要部署的应用程序进行测试创建环境 辅助作业的唯一工件是一个单独的文件 其中包含专为主
  • 将具有重复键的键值数组转换为具有唯一键和值数组属性的对象数组

    我有一个键 值对数组 键有时会重复 并且每个键的值始终是唯一的 我想将每个唯一的键压缩为一个对象 这样我就有一个键和一个关联值的数组作为属性 有没有方便的 JavaScript 函数可以做到这一点 This pairArray key a
  • 使用 FFmpeg 从大电影创建缩略图需要太长时间

    我正在使用这个 shell 命令从 123 秒的 VIDEO FILE 中制作缩略图并将其保存到 THUMBNAIL FILE 中 ffmpeg i VIDEO FILE r 1 ss 123 f image2 THUMBNAIL FILE
  • 我可以在 GridView 中合并页脚吗?

    我有一个与数据集绑定的 GridView 我有我的页脚 它由列线分隔 我想合并 2 列 我怎么做
  • 将预编译模板与 Handlebars.js 结合使用(jQuery Mobile 环境)

    我在 Handlebars 中的模板预编译方面遇到了一些困难 我的 jQuery Mobile 项目在模板方面变得相当大 我希望预编译我使用的模板 然而 我似乎找不到关于如何使用车把执行此操作的良好解释 例如分步教程 我仍然使用脚本标签将模
  • 如何让只有授权用户才能访问存储在 Amazon S3 中的内容?

    一旦您将内容存储在 S3 中并将其公开 那么每个人都可以访问它 有没有办法让只有授权用户才能访问S3中存储的内容 例如 我有一个允许人们存储文档的网站 服务器将这些文档存储在 S3 中 我希望只有上传该文档的用户才能访问它 我知道我可以将
  • 无法对 DependencyProperty 进行数据绑定

    我有一个带有 DependencyProperty 的 UserControl 我使用数据绑定表达式在主机窗口中设置它的值 但是 它并没有按预期工作 用户控件的代码隐藏片段 public class ViewBase UserControl
  • 带有 JSON 数据的 DataTable

    我正在尝试使用 DataTable 创建一个表 但很难让 DataTable 使用 JSON 对象加载 function getData var request new XMLHttpRequest var json link to my
  • MPMoviePlayerController 与启动 UIWebView 来流电影的优缺点

    我有一位客户拥有 Flash 格式的网络视频内容 我的任务是帮助他们在 iPhone 应用程序中展示视频 我意识到第一步是将这些视频转换为适合 iPhone 的 Quicktime 格式 然后我必须帮助客户弄清楚如何或在哪里托管这些文件 如