手机音频流媒体应用与优化指南

本文主要分享了在手机平台进行音频流媒体开发应用的一些经验,内容主要译自Werner Ruotsalainen的《The Radio Stream Transcoding Bible 》原文地址,穿插了本人在一些粗浅的开发体会,相信对大家的手机流媒体开发和应用有所帮助和启发:)

 

随着移动流量资费越来越少,网络电台越来越多,在手机上收听网络电台成为一种很有价值的应用。本文介绍了

一些实践;
   1. 能用同样的带宽获得完美的音质
   2. 能在保持同样音质的前提下大大节省你的流量费用。
   3. 更省电,因为2.5G比3G更省电
   4. 能让你听到一些由于网络或操作系统限制而从没想到过的电台
   5. 能让管理电台收藏更容易,你不需要在不同的电台程序之间切换,而其实它们的协议都差不多。

本文是我的《多媒体圣经》的一部分,这书下个月就会出版,而在下一版的多媒体圣经里我会推出《视频流媒体

开发指南》(k歌:作者食言了,我们到现在还没等到,呵呵

这部指南跟我其他的多媒体开发文章一样都是跨平台的,如果你仅仅是名WM或者Symbian开发者,也应该了解一

些其他平台的的多媒体开发特性。你有WM/SYMBIAN两部测试机是最好的了,比如我一般会使用NOKIA N95用于我

的主要的娱乐和网页浏览、邮件收发和通讯,为什么呢,因为与任何的WM手机相比,因为它强大的A2DP品质,内

置的立体声扬声器,轻巧的机身和不错的待机时间;相比而言,我另外一部基于Pocket PC的HTC Oxygen(S310)

就显得笨重如砖头了,不过因为比较便宜而且它的强大的电话录音功能,我经常把它放在我的裤子口袋里。

另外,我也计划去了解Palm系统,因为我的Tungsten T3手机没有WiFi卡(k歌:这哥们手机还真多..),所以我

没法在上面测试流媒体。如果你有不用的Wi-Fi卡可以寄给我,如果你在欧洲就更方便了。毕竟,Palm系统的

Pocket Tunes是超级好的音频播放器。 

介绍

在收听广播电台时,你肯定会碰到没法收听某个电台的情况,解决的方法请看下文


1.1 当一个网络广播电台你完全听不了

   首先我们来看看为什么你的手机无法播放那个电台。
  
   1. 你的连接速度不足以正确的播放流。比如你要在标准GPRS网络里收听一个64 kbps的电台,而你的网络连

接无法超过43kbps。在这种情况下,无论你使用多大的缓冲都难以避免严重地停顿。这样的现象在你不用3G网络

时不会得到改善。即使你手机支持3G而且也有必要的信号,你可能还是会选择禁用3G而回去用GPRS。最重要的原

因就是当前的3G模块太耗电了,即使是高端的WM HTC Kaiser或者Nokia N95。

   在上述情况下,你肯定想采用一些方法来降低这些音频流的比特率。利用现有技术,你可以把FM品质的立体

声音乐压缩到24 kbps,我不是开玩笑!

   请注意,本文假定你只有GPRS连接,不幸的是一些GSM运营商坚持GPRS+3G架构,而抛弃了2.75G和EDGE技术(

译者:本文写于08年初,现在国内EDGE网络已经很普遍了:))。而EDGE网络有高速度(最多236 kbps,对网络广

播来说足够了)和低能耗,据我了解与GPRS相近。

   2. 你要听的是RTSP流,而运营商不支持直接的互联网连接( k歌:你用的是cmwap接入点,应该选用cmnet

介入,cmnet相当于你的手机有一个单独的外网IP,而cmwap需要中转服务器)。他们使用防火墙和NAT技术,使

流媒体服务器根本不能连接到手机。不幸的是,世界上60%的GSM运营商是这样做的。

   不幸的是,很多网络电台采用RTSP协议。最重要的是,在Symbian和WM所有的(除了Windows Mobile上的

MPlayer,它使用了对防火墙/NAT友好的HTTP协议而不是RTSP协议)手机实时音频播放器使用RTSP协议。这意味

着你根本无法收听实时的广播电台,除非你所在的运营商不使用NAT。
 
   即使你能有个快速的网络也没有NAT限制,你还是无法播放一些流。 最重要的因素是在symbian上的WMA

(Windows Media Audio)。NOKIA内置播放器能播放本地WMA文件,却不能播放WMA流。(CorePlayer能播放WMA流,

但即使是最新版本,其网络模块是如此之差,播放了一段时间后就会出现严重的问题,这种情况不只出现在WMA

流,其他格式的流也一样。希望下一个版本能改进)

 

1.2  当一个电台勉强能听但需要优化

   最普遍情况,GPRS连接有下行带宽小于43 kbps,意味着有效广播流的比特率有32kbps;而一般默认32kbps的

网络电台都有同样的问题:这些音频流一般都是单声道的,音质也很一般。当然如果你所处的是EDGE网络,那肯

定能承受绝大部分的网络电台的码率了。
 
   如果你不相信使用GPRS(或者EDGE)对比3G更省电,你在Windows mobile手机上用TCPMP打开一个MP3流,用

acvTaskMan来查看,如下截图,第一个是通过UMTS(3G标准),第二个通过GPRS,当前的CPU占用率差别是

200mA/300mA=60%,也就是说如果你设置手机使用GPRS MODE,就能节省60%的电量!

 

 

k歌:Windows mobile智能机你可以用TCPMP来听广播,而且MMS://的电台你直接用自带的Windows Media Player来放就行了。symbian上NOkia Internet Radio可以听SHOUTCast MP3流,Coreplayer新版也可以听mms流,不过由于wma是微软的私有协议,所以Coreplayer对mms流的支持没有公开。

 

 

下面我们对主流的音频流媒体格式做个概述。一般手机支持wma,RealAudio,一些3G格式(都基于RTSP),Winamp PLS和Flash。不幸的是,许多格式只支持RTSP协议,意味着除非运营商使用NAT'ing(把你手机暴露给Internet),这些格式是完全无用的。

下表给出了两个主要的手机操作系统WM和symbian在NAT'ed和non-NAT'ed(direct)下的音频支持

 

Windows Mobile:




Symbian:


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值