关于3G手机平台的开发研究方案

简介:

在3G快速发展的同时,3G网络要求具有良好的服务质量、后向兼容性及其与固网的兼容性、以及高速多媒体业务能力等,从而推进业务的标准化,实现开放的终端业务应用平台。

根据本人的一些开发经验和网络上一些资料, 大概总结一些3G手机平台的多媒体支持情况和开发思路。

1. Windows mobile:

MS一直定位在中高端商务人群,对多媒体的支持相对落后。 WMP(windows media player)看起来很弱, 默认只支持ms自家格式wmv/wma/avi, 其他格式就得用户自己扩展。其实WMP是基于DirectShow开发的播放器,只要用户给系统安装各种decoder和demuxer filter, wmp就能支持各种格式, 常用的是ffdshow和Haali Media Splitter。还有从realplayer破解出来的filter可支持rm/rmvb。

所以, 要在wm上开发一款播放器思路基本就以下三种:

 1) 扩展Windows Media Player:  使用 User Interface Plug-ins, 可以为wmp定制各种皮肤。如果要在别的程序里要控制WMP,要用到 User Interface Background Plug-ins, 这就牵涉到COM服务器的知识。 详细可参考 王克伟博客

 2) 基于TCPMP做二次开发。 TCPMP是wince/wm上最流程的多媒体播放器开源工程(之后就闭源商业化为Coreplayer),最后版本是0.72rc,支持mp3/aac/wma/mp4/avi/asf和http协议。TCPMP是在wm上快速开发一款播放器的最佳选择。 网上有一些修改TCPMP皮肤的方法。而如何利用plug-in为tcpmp增加rtsp协议或别的文件格式支持, 则很少有人分享。 我也不甚了解(我曾试图从tcpmp剥离3gp解析器终告失败)。

 3) 完全自己开发播放器。使用DirectShow或者开源库。如解码mp3的libmad, rtsp的live555或mpeg4ip,视频解码移植xvid或ffmpeg.

2. Symbian:

 手机很早就定位在多媒体娱乐, 音视频格式的支持还是比较全。

3gp/mp4,h.263/mpeg4/aac/amr/mp3/wma是baseline, 更有高端智能机有支持h.264。所以在symbian上开发一个播放器的思路主要有以下两种: 

1) 调用symbian提供的接口: 视频播放的话, 可直接用CVideoPlayerUtility类。 realplayer支持什么格式,你就能支持什么格式。包括3gpp流媒体播放 ;  音频播放的话, CMdaAudioPlayerUtility可做本地播放,CMdaAudioOutputStream可做流式播放, 而MMFCodec解码效率比CMdaAudioOutputStream 低一点,但对手机兼容性更好,因为本来就是给第三方用的。

2) 完全自己开发: 本地播放器基本没必要了。 网络播放器的话, 不要听信symbian推荐的单线程多AO的方案,因为很可能出现下载AO和解码显示抢CPU的状况。  

3. MTK:

6223/6225视频都只支持motion jpeg AVI,  6253/6235则支持MP4 Encode/Decode ; 音频解码6225/6253/6235均支持amr/mp3/aac/wav,6223则支持amr/mp3/wav。 MTK上做多媒体应用主要面临两个问题 1)运行效率 2) rom/ram占用。

 1) 音乐播放器: 调用mdi_audio_play_string_with_vol_path

 2) 视频播放器: 自己软解码而且必须做裁剪和优化, 流程参考MTK系统播放器。

4. Android/Ophne:

Android的多媒体架构基于第三方的Packet Video公司的OpenCore Platform来实现,支持所有通用的音频,视频,静态图像格式,CODEC(编解码器)使用OpenMAX 1L interface 接口进行扩展,可以方便得支持hardware / software codec plug-ins支持的格式包括:MPEG4、H.264、MP3、AAC、AMR、JPG、PNG、GIF等。流媒体支持3GPP,HTTP,RTSP/RTP, 甚至还有基于H324-M standard来支持视频会议。OpenCore通过C/C++实现,通过JAVA的JNI方式调用。

所以,ANDROID应用开发一般不会过多研究OPENCORE,而是调用上层的MEDIA API即可。 多媒体应用可以被快速方便的开发出来, 当然也就意味着..... 多媒体开发人员有沦为白菜的危险。 做LINUX底层的另当别论。

5. Iphone

IPHONE作为新一代智能手机的标杆,多媒体性能自是十分强大。音频支持mp3/aac/wav,  视频则只支持MP4/MOV(mpeg4和h.264编码)。 IPHONE出于版权和专有格式的考虑, 通过ITUNES拷贝文件时, 只能拷贝IPHONE支持的MP4文件。 这样的做法封闭但也符合APPLE的风格。

所以,在IPHONE上开发本地播放器是没有必要的。  网络播放器就按一般套路来移植,因为iphone支持标准C/C++和object C.

开发是一个漫长等待的过程。它是一个对用户的需求进行去粗取精、去伪存真、正确理解,然后把它用软件工程开发语言(形式功能规约,即需求规格说明书)表达出来的过程。经分析、设计、编码和测试。市场竞争越来越激烈,如何在有限的时间内完成项目,满足客户的需求成为企业决策者所需要面对的现实。企业组织开发团队时可根据自身的研发力量灵活决策,以较小的人力资源投入获得较高的收益。而把主要精力投入项目的业务逻辑处理上,加快项目开发进展,从而为企业赢得市场先机。AnyChat能让企业越过复杂的底层技术实现,长期积累的音视频即时通讯应用经验,已成为音视频开发商们技术方案提供商的有利条件。




本文转自 fanxiaojun 51CTO博客,原文链接:http://blog.51cto.com/2343338/529803,如需转载请自行联系原作者

相关文章
|
2月前
|
Android开发 开发者 UED
个人开发 App 成功上架手机应用市场的关键步骤
个人开发 App 成功上架手机应用市场的关键步骤
|
2月前
|
运维 监控 开发工具
应用研发平台EMAS产品常见问题之华为手机没收到通知如何解决
应用研发平台EMAS(Enterprise Mobile Application Service)是阿里云提供的一个全栈移动应用开发平台,集成了应用开发、测试、部署、监控和运营服务;本合集旨在总结EMAS产品在应用开发和运维过程中的常见问题及解决方案,助力开发者和企业高效解决技术难题,加速移动应用的上线和稳定运行。
|
3天前
|
Web App开发 移动开发 编解码
FFmpeg开发笔记(三十二)利用RTMP协议构建电脑与手机的直播Demo
本文讨论了实时数据传输在互联网中的重要性,如即时通讯和在线直播。一对一通信通常使用WebRTC技术,但一对多直播需要流媒体服务器和特定协议,如RTSP、RTMP、SRT或RIST。RTMP由于其稳定性和早期普及,成为国内直播的主流。文章通过实例演示了如何使用OBS Studio和RTMP Streamer进行RTMP推流,并对比了不同流媒体传输协议的优缺点。推荐了两本关于FFmpeg和Android开发的书籍以供深入学习。
11 0
FFmpeg开发笔记(三十二)利用RTMP协议构建电脑与手机的直播Demo
|
8天前
|
缓存 NoSQL Java
案例 采用Springboot默认的缓存方案Simple在三层架构中完成一个手机验证码生成校验的程序
案例 采用Springboot默认的缓存方案Simple在三层架构中完成一个手机验证码生成校验的程序
57 5
|
26天前
|
JavaScript Java 测试技术
基于ssm+vue.js+uniapp小程序的二手手机交易平台附带文章和源代码部署视频讲解等
基于ssm+vue.js+uniapp小程序的二手手机交易平台附带文章和源代码部署视频讲解等
28 7
|
12天前
|
Java 关系型数据库 MySQL
基于Java的二手手机回收平台系统
基于Java的二手手机回收平台系统
|
2月前
|
JavaScript Java 测试技术
基于SpringBoot+Vue+uniapp微信小程序的欢迪迈手机商城设计与开发的详细设计和实现
基于SpringBoot+Vue+uniapp微信小程序的欢迪迈手机商城设计与开发的详细设计和实现
|
17天前
|
JavaScript Java 测试技术
基于SpringBoot+Vue的二手手机交易平台的详细设计和实现(源码+lw+部署文档+讲解等)
基于SpringBoot+Vue的二手手机交易平台的详细设计和实现(源码+lw+部署文档+讲解等)
14 0
|
18天前
|
前端开发 JavaScript Android开发
手机APP开发|基于安卓APP实现掌上党支部——党员app
手机APP开发|基于安卓APP实现掌上党支部——党员app
|
2月前
|
运维 安全 Android开发
手机与电脑投屏互联方案
手机与电脑投屏互联方案
57 7