【问题标题】:DirectShow analog for Symbian OS?Symbian OS 的 DirectShow 模拟?
【发布时间】:2010-12-29 23:41:34
【问题描述】:

那么 Windows Mobile 有它的 DirectShow 用于媒体编辑捕获,那么它在 Symbian OS (s60 v5) 上的模拟是什么?

【问题讨论】:

  • 是的,它与编程有关!谷歌什么是 DS,程序员用它做什么!

标签: windows symbian directshow nokia


【解决方案1】:

Symbian 上有许多提供音频和视频功能的 API;请注意,我对 DirectShow 不熟悉,但根据对 Wikipedia 的简要了解,看起来 DirectShow API 比 Symbian(当前)提供的更强大。

这里简要概述了 Symbian 可用的 API 以及您可以使用它们做什么。

开发声音

DevSound API CMMFDevSound 是可用的最低级别的音频 API。它提供多种格式的音频输入和输出流。支持的确切格式取决于您使用的特定硬件,但它始终支持 16 位 PCM,通常也支持 AMR、AAC、MP3。 API 不是最容易使用的,但如果您想执行“实时”音频流传输,可能值得使用。

CMMFAudioInputStreamCMMFAudioOutputStream 类本质上是 DevSound 的包装器;它们更容易使用,但没有那么强大。

音频剪辑实用程序

对于基本文件(剪辑)播放/录制,您可以使用CMdaAudioPlayerUtilityCMdaAudioRecorderUtility。它们提供“打开文件”、“播放”、“搜索”等级别的功能。如果您只想播放/录制音频文件,它们是最简单的选择。如果您希望能够在播放时生成音频,或者在录制时对其进行处理,那么它们就不好用了。

视频剪辑实用程序

这些是音频剪辑实用程序的模拟,但用于播放/录制视频文件。要使用的类是CVideoPlayerUtilityCVideoRecorderUtility。它们涉及使用直接屏幕访问和/或 ECAM 来呈现/录制视频(见下文)。

直接屏幕访问

Direst Screen Access (DSA) 提供对视频硬件的快速访问,用于渲染视频、相机取景器或任何其他需要高速图形的设备。开始的课程是CDirectScreenAccess

DSA 的确切行为取决于您的特定硬件:例如,如果在 DSA 区域顶部绘制菜单或另一个窗口,某些实现将“中止”您的 DSA;其他人可能允许 DSA 在后台继续运行,在硬件中对您的 DSA 区域执行剪辑。

注意,如果您直接使用 DSA 渲染视频,则需要自行安排视频流解码; DevVideo(下)在这里可能会有所帮助。使用 DSA 只能渲染未压缩的位图。

电子凸轮

ECAM API CCamera 提供对现有相机硬件的访问。它可以提供来自摄像机的实时未压缩视频帧(用于编码或渲染取景器,通常使用 DSA),也可以拍摄快照。

开发视频

DevVideo API 提供对视频编码和解码硬件的低级访问。根据您使用的特定硬件,它还可能支持将编码的视频流呈现到 DSA 区域。 API 很难使用,您可能会遇到不同手机型号之间的不规范。如果您确实需要执行硬件加速的流式视频编码/解码,我只建议使用它。请注意,上面提到的视频剪辑实用程序在后台使用 DevVideo,因此如果您使用它们,您将受益于现有的任何硬件加速。

要查看的类是CMMFDevVideoPlayCMMFDevVideoRecord。一些警告:

  • 诺基亚已从某些 SDK 中排除了.lib 文件,这意味着您不能将这些 API 与标准 SDK 一起使用;我不确定这里目前的情况。
  • 实际上,要使这些课程正常运行,您可能需要诺基亚的专业帮助,即您需要为此付费。我很高兴在这里被证明是错误的:-)

使用哪些 API?

好问题。这取决于你想做什么。如果您只想对音频/视频进行基本播放/录制,请使用剪辑实用程序。如果它们足够强大,可以满足您的需求,那么它们会比其他的更容易使用。

但是,如果您需要执行音频或视频流传输,则需要使用 DevSound 和/或 DSA。如果你想做类似的事情:

  • 渲染通过网络流式传输的音频和视频
  • 实时生成音频,例如游戏音效
  • 实时处理录制的音频/视频,例如通过网络从摄像头流式传输

那么您将需要使用低级 API,而且您可能需要学习很多东西!

一些链接

  • Symbian books 页面上的一些示例源代码。 Symbian OS C++ for Mobile Phones v3 的代码包含所有高级多媒体 API 的示例(即不是 DevSound 或 DevVideo)。很遗憾,这本书本身无法在线获得。
  • 诺基亚论坛有一些example code 可能值得一看。

【讨论】:

    猜你喜欢
    • 2012-09-21
    • 2012-02-18
    • 2023-04-10
    • 1970-01-01
    • 2019-09-01
    • 2018-10-02
    • 1970-01-01
    • 2010-11-30
    • 1970-01-01
    相关资源
    最近更新 更多