Adobe
产品

首选目的地

  • Creative Suite 6
  • Adobe Marketing Cloud
  • Acrobat
  • Photoshop
  • SiteCatalyst

教育

  • 适用于学生
  • 适用于中小学
  • 适用于高等教育机构

设计和照片

  • Photoshop
  • Illustrator
  • InDesign
  • Lightroom
  • Elements 系列

视频

  • Adobe Premiere
  • After Effects

Web 开发和 HTML5

  • Dreamweaver
  • 游戏 [在新窗口中打开]
  • 移动应用程序

Adobe Marketing Cloud

  • 什么是 Adobe Marketing Cloud?
  • 数字分析
  • Web 体验管理
  • 测试和目标定位

分析

  • SiteCatalyst
  • Adobe Discover
  • Insight

Experience Manager

  • CQ

目标

  • Test&Target
  • Recommendations
  • Search&Promote

媒体优化工具

  • AudienceManager
  • AudienceResearch

文档服务

  • Acrobat
  • SendNow [在新窗口中打开]

出版

  • Digital Publishing Suite

  • 查看所有产品
业务解决方案

按业务需求分

  • 数字分析
  • 数字出版
  • 文档管理
  • 测试和目标定位
  • 视频编缉和服务
  • Web 开发 [在新窗口中打开]
  • Web 体验管理
  • 查看所有业务需求

按行业分

  • 广播
  • 教育
  • 金融服务业
  • 政府部门
  • 出版
  • 零售业
  • 查看所有行业
支持和培训

我需要帮助

  • 产品
  • Adobe Marketing Cloud
  • 论坛 [在新窗口打开]

我想学习

  • 培训和教程
  • 证书 [在新窗口打开]
  • Adobe 开发人员连接
  • Adobe 设计中心
  • Adobe TV [在新窗口打开]
  • Adobe 市场营销中心
  • Adobe Labs [在新窗口中打开]
下载
  • 产品试用
  • Adobe Flash Player
  • Adobe Reader
  • Adobe AIR
  • 查看所有下载
公司
  • Adobe 工作机会
  • 投资者关系
  • 新闻中心
  • 隐私
  • 公司社会责任
  • 客户展示
  • 联系我们
  • 更多公司信息
购买
  • 在线商店
  • 针对学生、教师和职员
  • 批量许可
  • 优惠酬宾
  • 寻找经销商
  • Adobe Marketing Cloud 销售 [在新窗口中打开]
搜索
 
信息 登录
为何登录?登录后可以管理您的帐户,访问试用版下载、产品扩展和社区区域等。
欢迎,
我的 Adobe
我的信息
我的首选项
注销
隐私权 我的 Adobe
Adobe
产品 分类 购买   搜索  
解决方案 公司
帮助 培训
登录 注销 隐私权 我的 Adobe
Date Date
Qty:
Subtotal
Promotions
Estimated Shipping
VAT
Calculated at checkout
Total
Checkout
Adobe 开发者中心 /

Adobe 跨 Web、桌面和移动设备的视频技术

作者 David Hassoun

David Hassoun
  • david.realeyes.com

作者 John Crosby

John Crosby
  • john.realeyes.com

Content

  • Flash 视频的优势
  • 媒体播放器
  • 多个协议
  • 内容安全
  • 在各种屏幕上交付视频
  • 测试和调试
  • 部署选项
  • 下一步阅读方向

创建日期

22 October 2012

页面工具

在 LinkedIn 上共享
书签
打印

Tags

要求

必备知识

本文假设您拥有 Adobe Media Server 的基本使用知识,知道如何运行基于 Flash 的 SWF 客户端。

用户级别

全部

必需产品

  • Adobe Media Server 5 Standard
  • Open Source Media Framework

本文介绍了 Adobe Flash Platform 生态系统支持的原来越多的设备和屏幕间的视频集成。 阅读本文后,您应该大体了解 Flash 视频平台的优势,理解基于 Flash 的视频选项,以及每种类型的设备和屏幕的考虑因素,并且还会获得一组入门资源。

Flash 视频的优势

得益于 Adobe Flash Player 的广泛应用范围和丰富功能,它是一个在越来越庞大的屏幕集合上交付视频和媒体的优秀平台。 因为 Flash 视频跨不同浏览器提供了一致的编解码器支持,所以只要实现适当,它就能真正变成跨平台和跨屏幕运行。 Adobe 倾注了大量心血在平板电脑、智能电话和智能电视等设备上交付视频基本功能,还可确保跨新兴的平台和屏幕提供一致的体验。

在 Flash Platform 上构建应用程序允许您将内容交付给广泛的设备。 这意味着用户无论身在何处,都能使用相同的内容,享受该内容的威力和体验。

video-across-devices-fig01_cn
图 1. 将视频交付给广泛的设备
  • 个人计算机 – 超过全球 97% 的计算机
  • 移动电话和平板电脑 (iOS/Android/RIM)
  • 电视 (Google TV/Samsung)

对用户而言,这意味着他们能够在想要的时间访问他们想要的内容(包括视频)。 对于内容生产商和提供内容的人,这意味着他们需要留意使用该视频的设备。 它是一个高功耗的桌面计算机,还是处理能力有限和屏幕较小的设备? 现在,构建应用程序和创建将供人使用的内容时,这些问题至关重要。

答案可在一些现有的和新的 Flash Platform 功能中找到:

  • 针对低 CPU 设备和/或高清质量媒体的硬件加速
  • 提供交互式、实时和视频点播体验的能力
  • 进行网络和交付优化的先进点对点和多播解决方案
  • Flash Platform 始终提供的高级用户界面和沉浸式体验功能。

此处仅给出了 Flash Platform 为了增强您在所选屏幕上的视频体验,为开发人员和用户提供的部分功能。 本文介绍一些主要的视频交付概念,重点介绍了视频创建以及跨多个屏幕交付视频内容所需的知识。

媒体播放器

媒体播放器是任何提供视频的应用程序中的一个基本组件。 无论您正在构建一个完全自定义的媒体播放器,还是从一个 Open Source Media Framework (OSMF) 这样的框架着手,您都需要熟悉一些词汇和概念,这样才能全面理解如何在各种屏幕上交付视频。 可能影响您如何构建媒体播放器的其他因素还包括:

  • 网络: 将基于何种协议来交付视频?
  • 安全性: 我们需要保护我们的内容吗,采用多高的保护水平?
  • 设备/平台: 将使用哪些设备播放该视频?

Flash Platform 和来自 Adobe 的集成视频解决方案为这些问题提供了出色的答案。

自定义媒体播放器

可构建自定义媒体播放器来满足或实现您可想到的任何需求或特性。 当然,从头构建媒体播放器时,您需要做出一些取舍。 许多现有的播放器和框架中包含大量特性,这些特性很难从头重新构建。 在任何流式传输的 Flash 或基于 AIR 的媒体播放器的核心是以下类:

  • NetConnection: 管理到一个流式传输服务器/服务(如果已使用)的外部连接,或者为基于 HTTP 的流式传输提供外部管理机制
  • NetStream: 是实际加载和流式传输媒体内容的基类。 NetStream 和 NetConnection 都通过 NetStatusEvent 来提供各种状态信息,其中大部分(如果不是所有)类型的事件都应以某种方式处理。
  • Video: Video 类是显示对象,NetStream(或 Camera)将在其中向用户显示内容。 它实际上是显示媒体的“窗口”。

尽管构建非常基本的媒体播放器可能很简单且很轻松,但常常需要实现许多其他增强功能。 复杂连接管理和重连排序、实况和视频点播之间的细微区别,以及 Dynamic HTTP Streaming 等特性的复杂集成需求等因素,常常让从头进行自定义媒体播放器开发成为一项艰巨的任务。

以下是自定义播放器的优缺点:

优点

 

  • 轻型: 您只使用想要使用的类
  • 细粒度控制: 您能直接访问回放控制类
缺点

 

  • 开发时间: 需要更多的前期开发时间,因为您要从头构建所有功能
  • 支持: 您将对任何新特性和/或需要对播放器执行的任何更改负责

基于 Open Source Media Framework 的播放器

Open Source Media Framework 提供了一个受支持且经过深思熟虑的框架,用于构建可针对几乎任何媒体交付需求而定制的强大媒体播放器。 通过将复杂的媒体回放功能抽象化,OSMF 允许开发人员将精力集中在构建更好的用户体验上,而强大的 API 会负责繁重的幕后工作。 OSMF 还提供了一个令人惊叹的扩展性框架,该框架基于一种插件体系结构,支持您构建自己的插件或使用其他社区成员的插件。

一个框架的健壮性常常是一个缺点,尤其是需要考虑媒体加载时间和带宽使用时,就像移动设备一样。

OSMF 的组件化性质非常聪明地解决了这个问题。 开发人员可随意选择将哪些类包含在应用程序中,因为不需要将整个框架编译为 .swf。 能够只包含应用程序所需的类,这让满足播放器大小需求成为一项很容易管理的任务。 例如,尽管 OSMF 具有强大的 API,但可构建一个只有 9KB 大小的基本播放器。

(有关更多信息,请参阅: http://osmf.org/dev/osmf/specpdfs/OSMFPlayerSizeSummary.pdf )

以下是 OSMF 播放器的一些优缺点:

优点

 

  • 可扩展
  • 功能全面,支持最新的 Flash Player 协议和特性
  • Adobe 和社区支持
  • 强大且易于使用
缺点

 

  • OSMF 拥有陡峭的学习曲线
  • 如果您的探险超过了基本功能,会变得非常复杂

Flash Media Playback 和 Strobe Media Playback

对于想要 OSMF 的所有好处,但没有资源来投入到从头构建播放器的开发人员而言, FlashMediaPlayback 和 StrobeMediaPlayback 是不错的选项。 Flash Media Playback 是 Adobe 拥有的一个功能全面,生产级的 OSMF 播放器,发布者可使用一个在线工具配置该播放器并将它嵌入到其网站中。 Strobe Media Playback 是同一个播放器的开源版本,开发人员既可按原样使用它,也可访问源代码并自定义播放器来满足自己的需求。

多个协议

将视频提供给广泛的受众可能极具挑战性。 内容提供商需考虑要将内容部署到不断扩充的设备列表,以及常常必须通过受限的网络进行导航,如许多企业环境中的网络。

Flash Platform 提供了丰富的交付和功能选项来跨所有屏幕向任何设备提供专业级的视频。 一种可能对多屏幕交付至关重要的高级特性是多比特率切换 – 也称为动态或自适应流式传输。 多比特率切换可自动在多个不同编码比特率的流之间切换,以适应性能或带宽限制。 移动设备无疑能从该功能中获益,因为它们的带宽变化会很显著且很频繁。 但同样毋庸置疑的是,任何屏幕都将从多比特率内容交付中获益,并且一般而言都强烈建议您使用此特性,这将在编码一节中进一步探讨。

以下是可用的协议:

  • RTMP: Real Time Messaging Protocol
    是一个专为 Flash 构建的高性能二进制协议。 它可提供一些最佳的交付性能和增强的功能,但可能由于它不是标准 HTTP 协议交付而被防火墙拦截。 RTMP 协议有一些变体,包括用于加密流式传输的 RTMPE 和 RTMPS,以及用于 HTTP 隧道的 RTMPT,可帮助避免出现一些网络拦截。 一般而言,这是点播视频或使用 Flash Platform 时的基本多播的最佳解决方案。
    注意: AIR for iOS 也支持 RTMP,但不支持 RTMPE。
    • Live or on demand video, audio, and/or data streaming
    • 基于 TCP
    • 通过 RTMPT 在 HTTP 上建立隧道
    • 通过 RTMPE 或 RTMPS 加密
    • 支持 Flash Access 2.0 DRM 加密流式传输和下载的内容
    • 在多比特率切换场景中很有用
  • RTMFP: Real Time Messaging Flow Protocol
    类似于 RTMP,因为它是一个为 Flash Platform 构建的轻型二进制协议,但它在大部分情况下一般用于多播、对等互助网络和基于点对点 (P2P) 的同步实时内容传输。 它也可用于单播流式传输,提供了作为基于 UDP 的协议的大量优势,但在尝试通过某些 NAT 和防火墙为用户进行流式传输时可能具有挑战。
    • 实时或点播视频、音频和/或数据支持
    • 基于 UDP
    • 支持单播和多播
    • 在多比特率切换场景中很有用
    • 自动使用 128 位 AES 加密
  • HDS: HTTP Dynamic Streaming
    是一个 HTTP 传输协议,允许对 H.264 和 VP6 内容进行打包和分段,以实现向基于 Flash Platform 的应用程序进行视频内容流式传输。 因为流式传输完全通过 HTTP 完成,所以这提供了最可靠的交付机制将内容传递到所有用户。 OSMF 集成了对管理回放的支持。 它目前需要一个来自 Adobe 的免费 Apache 模块,并且适用于没有任何其他特殊服务需求的点播内容。 对于实时 HDS 内容,需要使用 Flash Media Server 来动态打包和交付内容。
    • 真正通过 HTTP 进行的流式传输
    • 实时和点播视频、音频交付
    • 需要内容打包
    • 支持 Flash Access 2.0 DRM 加密流式传输
    • 在多比特率切换场景中很有用
  • PHDS: Protected HTTP Dynamic Streaming
    允许您生成加密的内容而无需 DRM License Server。 在 Flash Media Server 打包内容时,它生成许可并将其签入到内容流的 DRM 元数据中。 PHDS 还支持 HTTP Dynamic Streaming 的 SWF 验证。
  • HLS: HTTP Live Streaming
    是一个 HTTP 传输协议,支持您通过 HTTP 从一个普通 Web 服务器发送音频和视频,用于在 iPhone、iPad、iPod touch 和 Apple TV 等基于 iOS 的设备上和运行 Mac OS X 的桌面计算机进行回放。           
  • PHLS: Protected HTTP Live Streaming
    Flash Media Server 允许您创建受保护的内容并通过 HTTP 传输到支持 Apple HTTP Live Streaming 的设备。 PHLS 提供了实时 AES-128 有线加密。

内容安全

将您的视频高效地交付给最多的人,这只是等式的一部分。通常我们需要保护内容。Flash Platform 同样提供了允许您在多个级别保护视频的解决方案:

  • RTMPE 和 SWF 验证
    • 用户/令牌身份验证
      • 客户端和服务器
    • 需要 Flash Media Server
  • 使用 Flash Access 2.0 的 DRM
    • 行业批准的标准
    • 即将向移动和电视领域推出
    • 可通过 BuyDRM 和 EZDRM 实现为一种服务

有关各种安全性选项和配置的更多信息,请参阅文章: http://www.adobe.com/devnet/flashmediaserver/security.html

在各种屏幕上交付视频

现在您已更好地理解了媒体播放器和 Flash Platform 在交付内容方面的优势,我们可以探讨如何在各种屏幕上交付内容的细节了。 我们将考虑以下总体想法:

  • 内容创建和编码
  • 开发注意事项
  • 测试和调试
  • 部署选项

对于每种想法,我们将解决 3 个我们视为“屏幕”的目标端点:

  • 桌面/笔记本电脑
  • 移动: 智能电话/平板电脑
  • 电视

内容准备和编码

在向任何屏幕交付媒体时,编码音频和视频内容可能成为最复杂且最重要的步骤之一。 屏幕越多,复杂性越高,因为每种屏幕的需求可能不同。 一个在电话上效果不错的视频可能在高清电视上效果很差,所以要计划创建特定于屏幕的内容。 这将产生更多文件,但为最终用户提供了更好的优化和体验。 本文不会介绍每种屏幕的细节,但提供了下面的链接供参考:

  • 桌面/笔记本电脑
  • HTTP Dynamic Streaming
  • 移动设备:
    • Android
    • H.264
  • 电视

硬件加速

将视频部署到多种屏幕上时,特别是将高清视频部署到移动设备、机顶盒和电视,必须认真考虑最终用户的处理能力。 与单独依靠 CPU 来处理负载相比,通过利用设备的 GPU(图形处理单元),内容提供商可向范围更广的设备提供更高质量的视频体验。   

StageVideo

在面向桌面、移动设备和电视的 Flash Player 10.2 版本中,Adobe 添加了一些真正令人惊叹的功能。 该功能称为 StageVideo,指的是将传统上 CPU 密集型的解码和渲染操作卸载到计算机或设备上的视频硬件上。 对于桌面,这可实现以 20% 的 CPU 使用率(或更少,具体取决于硬件和支持)回放全高清 1920p 视频的能力。 一般而言,任何支持 H.264 解码/渲染应用程序的硬件都会看到 CPU 的使用率降低,并且可能看到像素保真度提高。 除了需要 Flash Player 10.2,StageVideo 一般仅支持全屏模式,除非在 HTML Object/Embed 代码中将 wmode 改为“direct”。 不过随着一些下一代浏览器的发布,出现了一些例外情况,但目前的建议是将 wmode 改为“direct”。 编译应用程序时,还需要使用一个新编译器参数生成一个具有适当支持的 SWF。 该编译器参数是 -swf-version,必须具有值 11 (-swf-version=11)。 有关如何设置此值的更多信息,请查阅 Andrian Cucu 的文章“OSMF 和 Strobe Media Playback 中的舞台视频支持入门”。

使用 StageVideo 实现硬件加速时,一定要知道视频实际上会在 flash.media.StageVideo 中的 Flash 应用程序显示列表下方渲染,而不是在传统的 Video 对象下方渲染。 所以如果拥有任何背景图形,必须隐藏或从显示列表中删除它们,因为它们将在 StageVideo 之上。

提示: 如果您听到了来自视频的声音,但无法看到视频,这可能是因为某个东西通过正在使用的 StageVideo 覆盖了视频。

对于移动设备和电视,由于通常具备有限的 CPU 和强大的视频解码器,所以硬件加速对实现最优的回放效果至关重要。 目前支持 StageVideo 的移动设备平台只有 Android 3.0+ 和 BlackBerry Playbook。 但是 AIR for TV 目前也支持 StageVideo。 StageVideo 的桌面实现可能支持多个同时运行的 StageVideo 实例,但移动设备和电视一般一次仅支持一个 StageVideo 实例。

以下是您应熟悉的 StageVideo 类的属性:

  • StageVideoAvailabilityEvent.STAGE_VIDEO_AVAILABILITY
    在舞台上进行分派,表明当前的 StageVideo 可用性发生了更改。
  • StageVideoEvent.RENDER_STATE & VideoEvent.RENDER_STATE
    StageVideoEvent 由 StageVideo 实例分派,VideoEvent 由一个 Video 实例分派。 事件的状态属性表示硬件加速处于以下模式中:
    • VideoStatus.ACCELERATED: 正在通过 GPU 来解码和组合视频。
    • VideoStatus.SOFTWARE: 正在通过软件解码视频并通过 GPU 组合视频(如果由 StageVideo 分派)或通过软件组合视频(如果通过 Video 分派)。
    • VideoStatus.UNAVAILABLE: 视频硬件已停止解码和组合视频。


有关 StageVideo 的更多信息,请参阅 Thibault Imbert 的文章: “舞台视频入门”- http://www.adobe.com/cn/devnet/flashplayer/articles/stage_video.html

OSMF 和 StageVideo

以下内容特定于 StageVideo 硬件加速的视频回放和基于 OSMF 的播放器的使用。 以下是一些需注意的要点:

  • 自动使用 OSMF 1.6 (sprint 2) 或更高版本
  • 可通过以下代码禁用: OSMFSetting.enableStageVideo = false;
  • 可通过以下代码检查是否支持: OSMFSetting.supportsStageVideo;
  • 更多信息请参阅: OSMF 和 Strobe Media Playback 中的舞台视频支持入门 - http://blogs.adobe.com/osmf/2011/02/getting-started-with-stage-video-support-in-osmf-and-strobe-media-playback.html

硬件考虑因素

为多种屏幕开发应用程序时,尤其是视频交付应用程序,您需要针对希望支持的每种屏幕考虑以下因素:

  • 设备功能
  • 屏幕分辨率、像素密度和大小
  • Flash Player 版本和功能
  • 网络需求、类型和可用性

个人计算机

快速、强大且能够显示质量非常高的视频……有时。 不能假设观看者正在他们能自动获得且具有更快的处理器、一个 GPU 和最高 Flash Player 版本的桌面机器上观看您的视频。 聪明的应用程序开发人员会计划好应对各种情形。

设备功能

直到最近,这也是产生应用程序需求的地方。 此平台的限制比其他平台要少。 这意味着创造力和特性在很大程度上是不受限制的。 您需要考虑将视频交付到哪些设备,这样可以调节内容和应用程序以获得最佳体验。 一些需要考虑的事项包括:

  • 操作系统
  • RAM
  • CPU

Flash Player 版本和功能

您还需要考虑多个 Flash Player 版本。 这意味着根据所用的 Flash Player 版本,会支持不同的功能和能力。 可能未来的某个 Flash Player 运行时版本会改变应用程序的执行方式。 要避免出现运行时错误,以及提供最佳的跨设备用户体验,一定要考虑此场景。 通过修改应用程序中可用的特性,以及在进行更改时通知用户,开发人员可确保最终用户拥有更加流畅的体验。  

移动设备: 电话/平板电脑

移动设备是数量正在激增的一种平台,Adobe 花了很大心血来提供支持跨广泛设备进行移动开发的工具集。 这引出了我们针对移动平台的第一个考虑因素。 在创建内容和构建应用程序时需要考虑大量的设备。 鉴于市面上目前存在的电话和平板电脑数量,考虑这些不同的屏幕并能够相应地进行调整,这在创建视频和应用程序时极为重要。

硬件约束

您遇到的每个设备可能通过设备硬件为应用程序带来不同的限制。 这意味着可在一种设备上使用的一些应用程序特性不能在另一种设备上使用。 例如,iPad 没有前置摄像头,而 iPad 2 则有。 在发布新硬件时会添加新功能,所以您需要确定哪些特性是您的应用程序的核心,及其功能支持这些核心特性的目标设备。 然后可将额外的可选特性添加到应用程序中,并在设备支持这些额外特性所需的功能时启用这些特性。

用户界面和显示考虑因素

在各种屏幕上,需要考虑众多显示屏尺寸和用户交互。 过去不是什么问题的像素密度和物理尺寸方面的区别让情况变得更复杂。 移动市场对平均像素密度具有重大影响,并且不再受标准 72 dpi 的限制。 高分辨率、小物理尺寸屏幕增添了一般性挑战,特别是对于视频。 首先是各个用户界面元素。 现在设置简单的宽度和高度不再那么简单。 维持触摸设备 UI 控件可用性的像素尺寸需要至少是每英寸半个像素。 一种物理尺寸的像素宽度/高度需要考虑屏幕深度或 DPI(每英寸点数)- 在此处与 PPI(每英寸像素数)同义。 幸运的是,设备 DPI 可通过 Capabilities.dpi 属性从 ActionScript 中的 Capabilities 对象获得。 要确定一个控件的物理尺寸,可获取以英寸为单位的目标尺寸并将它乘以设备的 DPI。

另一个与视频关系更紧密的挑战是,更高像素密度的设备进而需要更高质量的视频来保持成为该设备标准的视觉灵敏度。 当然,这是可管理的,但一般而言视频尺寸越大,需要越大的带宽来维护质量 – 这可能让通过蜂窝数据连接提供的视频难以保持高质量。 而且需要渲染的像素数/清晰度越高,硬件系统需求就越高。

下面列出了制定合适的尺寸决定所需细节的基本知识:

  • 分辨率 (Capabilities.screenResolutionX & Y)
  • 像素密度 (Capabilities.screenDPI)
  • 物理尺寸 (resolution/dpi)

要获取可理解和应用动态调整多屏幕应用程序尺寸等关键概念的优秀文章,请查阅 Christian Cantrell 的名为“为多种屏幕尺寸创作移动 Flash 内容”的文章 - http://www.adobe.com/cn/devnet/flash/articles/authoring_for_multiple_screen_sizes.html

Paul Trani 还撰写了一篇名为“正确地在不同屏幕间调整图形大小”的优秀文章: http://www.paultrani.com/blog/index.php/2010/12/sizing-graphics-correctly-across-screens/

除了适当调整 UI 元素本身(如视频控制栏),还需要为适当的用户交互来设计这些元素并调整其大小。 在触摸是主要界面控制方式的移动设备上,元素的设计需要适合设备的分辨率和用户体验。 请看看下面的控制栏,对比以下不同屏幕上可能的 UI 区别。

video-across-devices-fig02_cn
图 2. 设计和调整 UI 元素
设备检测

知道您的应用程序将在哪种设备上运行,或者至少知道该设备的功能,这可帮助您动态地塑造应用程序来适应实现最佳用户体验所需的功能。 flash.system.Capabilities 类是检测应用程序运行设备类型的主力。

一般而言,在开发跨屏幕应用程序时,您将希望确定以下事项:

  • 它是否为移动设备
    • 如果 Capabilities.cpuArchitecture 等于“ARM”,那么它可能是移动设备
  • 确定屏幕的物理尺寸(电话还是平板电脑)
    • 这通过获取 Capabilities.screenResolutionX 和 Capabilities.screenResolutionY 并将它们除以 Capabilities.screenDPI 来完成
  • 不同的操作系统(如 iOS)可能具有特殊的考虑因素
    • 要确定操作系统,可使用 Capabilities.os

以下的 ActionScript 代码段给出了可用于确定平台和设备的大体框架。

protected function analyzeEnvironment():void { //if mobile processor if( Capabilities.cpuArchitecture=="ARM" ) { var dpi:Number = Capabilities.screenDPI; trace(Capabilities.os); //check if iOS. IF true don’t play h.264 var iOS:Boolean = Capabilities.os.toLowerCase().indexOf("iphone") > -1; //determine the size of the screen in inches - this is for UI controls var screenWidthInches:Number = Capabilities.screenResolutionX / dpi; var screenHeightInches:Number = Capabilities.screenResolutionY / dpi; //See if screen is larger than 5 inches; width or height if( screenWidthInches > 5 || screenHeightInches > 5 )// Tablet { if( iOS ) { //CONFIGURE IOS TABLET } else { //CONFIGURE TABLET } } else // Phone { if( iOS ) { //CONFIGURE IOS PHONE } else { //CONFIGURE IOS PHONE } } } else // Desktop { //CONFIGURE DESKTOP } }

网络类型和可用性

知道应用程序何时在线和离线对任何应用程序都是一个重要因素。 对于移动应用程序,您在线还是离线以及您所在的网络类型是非常重要的信息,您可使用它们显著改善您应用程序中的用户体验。 允许用户离线工作,然后再次连网时同步更改或更新,或者在用户不使用 Wi-Fi 连接时不允许进行大型下载的能力,可能是您的应用程序有用与无用的区别。 此外,通过即用即付网络下载大型文件可能成本很高或者很受限制。 例如,对于 iOS,如果不使用 HLS 流式传输和仅支持 Apple 的音频,会将应用程序批准进行流式传输内容的时间限制到 10 分钟以下。

文件大小限制

文件大小限制不仅会影响设备和应用程序的性能,还会消耗掉存储空间有限的设备上的太多空间,这可能不利于以移动平台为目标的应用程序。 仔细考虑您添加到应用程序中的每个字节,这可帮助您避免应用程序由于消耗太多存储空间而被从设备中删除。

建议评估您应用程序中使用的任何框架。

平台细节

下面列出了针对特定移动平台的一些重要数据点。 其中许多细节已介绍,但仍然在此列出,作为跨每种平台的重要数据点的快速浏览描述。

Android

  • AIR 2.6 和更高版本支持

  • Android 3.0 和更高版本将支持 StageVideo

  • 每种设备具有不同的硬件

  • 不同的屏幕尺寸和像素密度

  • 支持所有 Flash Video 回放方法

    • RTMP

    • RTMPE

    • RTMPS

    • RTMFP - Multicast & P2P

    • HTTP (HDS)

    • 渐进性

  • 所有 Flash 支持的文件格式和编解码器

    • H.264

    • FLV

  • Flash Access DRM 支持

iOS

  • 交叉编译

    • iOS 封装的 AIR 应用程序无法通过代码加载 SWF

      • 如果实例的控制栏皮肤位于外部,这可能适用于媒体播放器
    • 可用于 iPad 或 iPhone

  • RTMP 和 RTMFP 支持 Sorenson Spark 和 VP6 编码的内容

  • RTMPE 不受支持

  • 受限的视频性能

    • 建议不超过 600kbps

    • 考虑更小的尺寸

  • StageVideo 硬件加速的内容在渐进式回放中支持 H.264,在单比特率或多比特率传输中支持 HLS

RIM

  • Flash 11.1 和 AIR 3.0 支持

  • StageVideo 目前受支持

  • 支持所有 Flash Video 回放方法

    • RTMP

    • RTMPE

    • RTMPS

    • RTMFP – 多播和 P2P

    • HTTP (HDS)

    • 渐进式

  • 所有 Flash 支持的文件格式和编解码器

    • H.264

    • FLV

  • Flash Access DRM 支持 – 即将实现!

  • 更多的编解码器选择 - H.264、MPEG4 和 WMV

    • 必须利用 QNX MediaPlayer 和 VideoDisplay 类
      https://github.com/renaun/QNXUIExamples/blob/master/Media1/src/Media1.as

电视

Adobe AIR for TV 支持将您的 AIR 应用程序、游戏、服务和内容部署到电视上。 鉴于人们每天会花多达 5 个小时来看电视,因此将您的内容交付给更多的用户就成为了可能。

电视开发考虑因素

与我们正在讨论的所有设备一样,在为电视开发应用时需要做出一些总体考虑。

  • 设备支持 – 电视制造商将负责在他们的硬件上认证 Adobe AIR。 这意味着您没有必要像移动设备一样担心设备功能。

  • 确保在为电视开发应用程序时,您选择了正确的设备配置文件。

  • 在设备上测试。 我们将在“测试和调试”一节中更详细地介绍这一点。

  • 电视可能是一个难以开发的媒介。 它们具有较大的显示屏幕和有限的硬件资源。 最好认为电视的性能功能没有移动设备那么高。

显示考虑因素

使用 AIR for TV 时,您需要为应用程序考虑屏幕的大小。 作为一种最佳实践,使用 Stage 类确定以下因素:

  • 分辨率 – 开发一个涵盖电视的多屏幕应用程序时,可使用 Capabilities.screenResulutionX 和 Capabilities.screenResulutionY 设置舞台的尺寸。
  • 舞台查看区域 - Adobe 建议在舞台的每一边保留 7.5% 用于过扫描(不可见的屏幕部分)。 下图和附带的链接有助于确定过扫描的影响和考虑因素。
video-across-devices-fig03_cn
图 3. 过扫描的影响和考虑因素。

有关电视舞台和可用区域的更多信息,请参阅 Flash Platform Doc 团队中 Jackie Levy 撰写的文章“AIR for TV 应用程序和“安全观看区域”(也称为“标题安全区域”)”。

  • 质量 – 设置 stage.quality 的值,使用 StageQuality.High 指定所有 Stage 对象的渲染质量。
文件系统限制

作为 AIR 应用程序,您的应用程序将能够访问电视的文件系统。 要保护电视的系统文件,AIR for TV 应用程序对设备上的文件的访问能力有限,并且您用于访问设备上各个文件的“目录”名称不是设备上的实际目录名称。 这么做可以避免意外地访问设备上的文件。

有关一些参考材料,请参阅“在电视上交付 Flash Platform 视频和内容”:http://www.adobe.com/cn/devnet/devices/articles/video_content_tv.html

测试和调试

对市面上的许多不同设备而言,跨屏幕测试和调试应用程序可能是一项艰巨的任务。 Flash Professional 和 Flash Builder 都是优秀的工具,不仅可构建这些跨屏幕的应用程序,还可帮助调试您在开发应用程序时可能遇到的任何问题。 开始调试的最快且最轻松的方式是用 ADL 模拟设备。 每个平台都具有这个选项。 在一些设备上进行调试可能比其他设备更加困难,以下是一些与每个平台相关的调试技巧。

  • 桌面/笔记本电脑: 您在为 Web 或桌面开发应用程序时,应非常熟悉可用的调试工具
    • trace() 语句
    • 浏览器中的远程调试
    • 使用 ADL 的远程调试
    • 使用设备的远程调试
  • 移动设备: 智能电话/平板电脑: 移动平台拥有类似于桌面/笔记本电脑的测试和调试功能,但不同的目标平台可能有些区别:
    • Android: 针对基于 Android 的平台的应用程序可直接部署到设备上。 这意味着您可通过 USB 进行调试,也可通过网络进行调试。
      • Android 打包: http://www.adobe.com/cn/devnet/air/articles/packaging-air-apps-android.html
    • iOS: 应用程序不能自动部署到 iOS 设备,您必须使用 iTunes。 使用 Flash Builder 在 iOS 设备上进行调试的具体步骤: http://help.adobe.com/en_US/flex/mobileapps/WSe4e4b720da9dedb5-2d82208b12e46a72ded-7ffc.html
      • iOS 打包: http://www.adobe.com/cn/devnet/air/articles/packaging-air-apps-ios.html
    • RIM PlayBook: BlackBerry 为 PlayBook 提供了一个 VirtualMachine 用于模拟和测试您的应用程序。 VirtualMachine 正在运行时,可直接部署应用程序,如果安装了调试令牌,您可直接部署到设备上。
      • BlackBerry PlayBook 打包: http://www.adobe.com/cn/devnet/air/articles/packaging-air-apps-blackberry.html
    • 有关移动调试的其他信息: http://help.adobe.com/en_US/air/build/WSfffb011ac560372f-5d0f4f25128cc9cd0cb-7ffa.html
  • 电视: 在一个设备上进行调试的步骤可能取决于每种设备,但 Flash Professional 和 Flash Builder 支持对设备上的应用程序进行远程调试:
    • 使用 Flash Professional 进行远程调试: http://help.adobe.com/en_US/air/build/WSd106d9f573d8da23-dcd13bd12a7d944d0b-8000.html
    • 使用 Flash Builder 进行远程调试: http://enterprisingflex.blogspot.com/2011/07/remote-debugging-in-flashbuilder.html

部署选项

最后但同样重要的是将完成的应用程序部署到全世界或地区。 在移动和电视领域,这主要通过提供商所提供的各种应用程序商店来完成。 应用程序商店提供了最佳的产品曝光机会和支付处理。 当然,这些好处需要您牺牲一些特性,尤其是涉及到金钱并期望与商店提供商分享部分利润时。以下参考资料可帮助您将应用程序的最终版本发布并提交到各个应用商店:

  • iTunes
  • Google Play
  • Amazon Application Store
  • BlackBerry
  • Samsung

下一步阅读方向

本文收集并展示了跨设备视频交付的考虑因素和功能的许多信息。 它为您提供了一些想法和资源,可帮助您理解跨多种设备进行视频应用程序开发的影响。 一个代码库的大部分代码能够创建可部署到如此多不同设备的应用程序的事实,是 Flash Platform 的强大功能和 Adobe 为让跨屏幕开发成为现实所投入的大量工作的有力证据。

随着可用带宽、设备和这些设备功能的增加,视频成为了一种可用于联系、取悦和通知用户的越来越重要的媒介。 Flash Platform 提供了一种强大且灵活的方式来将内容提供给用户,无论他们身在何处都是如此 – 在火车上还是在起居室中。

其他参考资料:

移动设备视频播放器优化最佳实践: http://download.macromedia.com/flashmediaserver/mobile-video-player-opt-v1_3.pdf

Creative Commons License
本文基于Creative Commons Attribution-Noncommercial-Share Alike 3.0 Unported License协议发布。

More Like This

  • 设置 crossdomain.xml 文件实施 HTTP 流式传输
  • 使用 PHDS/PHLS 和 Adobe Access 与 Adobe Media Server 5.0 实现内容保护
  • 更改安全密码
  • 用于 HDS 和 HLS 故障转移的 Varnish 示例代码
  • 使用 Adobe Media Server 为 HTTP Dynamic Streaming 和 HTTP Live Streaming 实现后期绑定音频

产品

  • Creative Suite 6
  • Adobe Marketing Cloud
  • Acrobat
  • Photoshop
  • Digital Publishing Suite
  • Elements 系列
  • SiteCatalyst

下载

  • 产品试用
  • Adobe Reader
  • Adobe Flash Player
  • Adobe AIR

支持和培训

  • 产品帮助
  • 论坛

购买

  • 在线商店
  • 针对学生、教师和职员
  • 批量许可
  • 优惠酬宾
  • 寻找经销商

公司

  • 新闻中心
  • 合作伙伴计划
  • 公司社会责任
  • 工作机会
  • 投资者关系
  • 事件
  • 法律
  • 安全性
  • 联系 Adobe
选择您的地区 中国(更改)
选择您的地区 关闭

North America

Europe, Middle East and Africa

Asia Pacific

  • Canada - English
  • Canada - Français
  • Latinoamérica
  • México
  • United States

South America

  • Brasil
  • Africa - English
  • Österreich - Deutsch
  • Belgium - English
  • Belgique - Français
  • België - Nederlands
  • България
  • Hrvatska
  • Česká republika
  • Danmark
  • Eastern Europe - English
  • Eesti
  • Suomi
  • France
  • Deutschland
  • Magyarország
  • Ireland
  • Israel - English
  • ישראל - עברית
  • Italia
  • Latvija
  • Lietuva
  • Luxembourg - Deutsch
  • Luxembourg - English
  • Luxembourg - Français
  • الشرق الأوسط وشمال أفريقيا - اللغة العربية
  • Middle East and North Africa - English
  • Moyen-Orient et Afrique du Nord - Français
  • Nederland
  • Norge
  • Polska
  • Portugal
  • România
  • Россия
  • Srbija
  • Slovensko
  • Slovenija
  • España
  • Sverige
  • Schweiz - Deutsch
  • Suisse - Français
  • Svizzera - Italiano
  • Türkiye
  • Україна
  • United Kingdom
  • Australia
  • 中国
  • 中國香港特別行政區
  • Hong Kong S.A.R. of China
  • India - English
  • 日本
  • 한국
  • New Zealand
  • 台灣

Southeast Asia

  • Includes Indonesia, Malaysia, Philippines, Singapore, Thailand, and Vietnam - English

Copyright © 2013 Adobe Systems Software Ireland Ltd. All rights reserved.

使用条款 | 隐私权 (已更新) | Cookies

京 ICP 备 10217899 号 京公网安备 110105010404