Symbian OS电话里的音频子系统主要包含两种独立的音频数据流。一种是电话声音数据,另一种是多媒体数据。

电话里这两种至关重要的用例要求有良好的音质和长时间通话的能力。专用于声音数据的数字音频总线用来保证这些需求。

在Symbian OS电话上实际使用的原始硬件音频格式是16位的脉冲编码调制(pulse code modulated, PCM)数据。声音的质量范围介于通话时的单声道8kHz和音乐播放时的立体声48kHz之间。

PCM音频硬件可以很简单,只要求很少的设置以保证音量和选择正确的输出路径。然后所要做的全部工作把数据按照所要求的速率填充到硬件——DMA硬件很便于完成这种任务。如果数据传输发生了延迟,音频硬件将立即产生抖动、重叠不连续等现象。
2.9.1 电话音频

电话声音数据在通话中是最基本的元素。在解决因长距离的卫星传输所产生的滞后问题而让用户有高质量通话的基础上,在声音延迟上还有严格的限制。为了保证做到这点,系统设计者为通话期间的低延迟响应和低电量消耗而优化了控制软件和硬件路径。

BP包含不通过Symbian OS执行声音频带音频处理的DSP。通话期间,Symbian OS将运行于低电模式,只是在显示器需要更新时才被唤醒。

正常的通话将在模拟音频电路中结束。这个电路里包含从模拟到数字和从数字到模拟的转换器,这种转换器被连接到麦克风和扬声器。使用蓝牙(BT)耳机时,PCM数据通过蓝牙耳机自己的专用接口被直接传输到BT模块中。

Symbian OS需要额外的音频路径以把系统声音融合到正在进行中的通话音里。这是为了处理诸如短信提示音、低电和第二个来电等事情。传递通过IPC连接到BP发送的原始音频数据,就可以完成这种声音的融合,在BP里,DSP将系统声音混合进音频流里。
2.9.2 多媒体音频

系统里除语音数据之外而产生的声音中,多媒体音频是很普通的一个部分。主要的多媒体声音有:

• 具有多种格式的铃声

• 提示来短信的警告

• 闹钟和日程表产生的提示

• 视频电话

• MP3播放

• 录音机记录的声音

• 视频的收集和播放

在系统的高层,由Symbian多媒体框架(MMF)进行控制,以支持媒体播放器、文件格式和插件。

多媒体设备框架(Multimedia Device Framework, MDF)将包含多媒体数字信号编解码器,多媒体数字信号编解码器将在PCM数据与设备驱动层的DevSound之间提供传输服务。

视频电话(Video telephony, VT)是个特殊的例子,因为这种情况下的实时音频数据不通过Symbian OS传输。电话中的音频部分将与视频一起形成64kb/s的数据流。VT电话系统必须分离到达的数据流,解码音频和视频部分,然后同步地进行播放。这项工作由专用硬件或者DSP来完成,它需要全部的200MHz ARM CPU以运行多媒体数字信号编解码器。

音频系统的主要复杂性是音频源和接收器数量的不断增长,以及它们可能被连接的方式。比如,目前的电话有多媒体耳机、扬声器、蓝牙和调频收音机。如果硬件不能混合并路由所有可能组合中的每一个音频源,就有可能产生问题。现在的一些音频用例还不能相互兼容,而是要求相互中断。

==================================================================================

说明: 本文由Bequan翻译自Symbian Press的Symbian OS Internals: Real-time Kernal Programming一书。任何人需要转载或引用,请先通过Email(a-pangu@163.com或symbianchn@gmail.com)与Bequan联系,在获得许可后方可转载或引用,否则视为侵权行为。转载或引用时,请在文章中注明上述翻译信息。

Commented by Vincent:

调用过程大致为:
Client thread: Client app调用client utility
Controller thread: controller plugin->DevSound, DevVideo, DevASR, DevMIDI

其中controller framekwork目的是为symbian提供多媒体plugin支持。
这些plugin叫做controller plugin,可以把多媒体数据从source传送到一个或多个sink处。
比如,audio controller可以把一个文件源(file source)输出到一个扬声器(speak sink)或把microphone数据源保存到文件中。
controller plugin通常支持一个或多个多媒体格式,比如wav或mpeg4。
plugin是通过ECOM框架管理的,所以允许用户安装扩展。

本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/lius1984/archive/2009/10/24/4722194.aspx

Symbian OS音频以及构架相关推荐

  1. [图文]Symbian OS简介(转)

    1.1 Symbian操作系统的起源和现状 Symbian成立于1998年,由爱立信.诺基亚.摩托罗拉和Psion共同出资筹建.1999年,松下公司加入Symbian.2000年,世界上第一款采用Sy ...

  2. 功能更强的手机-Symbian OS手机(转)

    手机市场的本质已经发生了改变.销售由不断创新的新功能所驱动,这些新功能结合了声音.数据.图象.和无线通讯新技术.Symbian OS为这种全新的市场定位提供了必要的技术. Symbian成立于1998 ...

  3. Symbian OS C++程序员编码诀窍

    版权©属于诺基亚公司( 2003年),诺基亚公司保留全部权利 "诺基亚"及"诺基亚科技以人为本"是诺基亚公司的注册商标.Java和所有基于Java的标志是Sun ...

  4. Symbian OS 精要

    一般诀窍 1.'Symbian 开发师网络'提供大量信息资源,协助您为 Symbian OS 操作系统编写应用程序.您应经常访问 www.symbian.com/developer 网站以便获取最新的 ...

  5. Symbian OS应用编程图形篇之架构

    Symbian OS 9.5 版本中引入了ScreenPlay技术.ScreenPlay是一个新的图形架构,它可以使智能手机制造商充分利用软件性能的提升.硬件的加速及第三方的图形引擎.ScreenPl ...

  6. Symbian OS on E65应用开发手记(3)——SDK注册及14天学习总结

    在环境搭建完成14天以后,今儿竟然神奇地提示我SDK已过期,需要注册--真吓人,你干吗我刚安装完的时候不提示我注册啊?折腾我!!!还以为我会从此找不到序列号,从此用不了了呢... 注册方法如下: 在对 ...

  7. symbian OS 简单介绍

    symbian OS 就是symbian操作系统. 1 什么是symbian? 也被称作EPOC系统,这是最早由Psion公司开发的一个专门应用于手机等移动设备的操作系统.目前由诺基亚.爱立信.松下. ...

  8. Symbian OS 初探

    Symbian OS 初探 2008-12-22 20:56 Symbian OS 初探 tombkeeper@xfocus,http://hi.baidu.com/tombkeeper 2005.1 ...

  9. Symbian OS

    目录·Symbian 概述 ·基于Symbian的UI ·Nokia开发的UI平台 ·UIQ开发的UI平台 ·Symbian智能手机 ·Series 60界面介绍 ·Symbian的特点 ·Symbi ...

最新文章

  1. 归档—监控ORACLE数据库告警日志
  2. ASP.NET 2.2 Preview 1首次支持Java SignalR客户端
  3. linux python syslog,Centos下python 对syslog重写进行日志记录
  4. python selenium --一些常用方法
  5. VMWare Workstation虚拟机 安装Centos7 图文指南
  6. powershell ise好字库和diy配色文件分享
  7. 【金融支付】名词:支付账户、备付金、网络支付、银行卡清算、贷记卡、代扣、代付
  8. PS修改图片尺寸和大小
  9. 怎么把PDF拆分成单页?
  10. 第三方应用在通话过程中调用setspeakerphoneon没有用_从0到1打造一个 WebRTC 应用
  11. androidStudio开发安卓APP的五种框架布局界面设计
  12. 国夜景最美丽的十大城市
  13. 分布式事务—Lec12课前资料
  14. 关于网线需要知道的知识
  15. 计算机图形学(第四版)-第一个画线例子- 读书笔记P30
  16. Go语言与Java语言对比
  17. 比最快的超级计算机快一百万亿倍!中国科学家实现“量子计算优越性”里程碑
  18. QuickBooks2020中文版
  19. Ubuntu 安装MTP驱动访问安卓设备
  20. 把手账打印成书 把回忆装订成册

热门文章

  1. 24.大数据---Hive的连接三种连接方式
  2. 面试逻辑题和答案(二)
  3. rabbitmq的使用已经数据同步
  4. JUC学习 - 延迟队列 DelayQueue 详解
  5. 提取EXCEL中事故里程
  6. ctf古典密码从0到1
  7. 大厂面经:网易美团头条百度+Java学习路线
  8. 数据库_哈工大战德臣
  9. 树莓派python驱动PCA9685
  10. Apache Ranger 1.1.0 用户指南