在Windows Mobile的手Z? RIL提供了访问Radio模块的接? 下面以一个简单的CZ说明如何在C#中通过RIL获得基站信息?br />需要注意的是,下面的代码可能无法在模拟器上面运行,因ؓ(f)~少必要的类库,在真Z没啥问题?/span>
W一? 定义必要的数据结构和回调函数
1. 包含基站信息的RILCELLTOWERINFOc?br /> public class RILCELLTOWERINFO
{
public uint cbSize;
public uint dwParams;
public uint dwMobileCountryCode;//中国的MCC?60
public uint dwMobileNetworkCode;
public uint dwLocationAreaCode;
public uint dwCellID;
public uint dwBaseStationID;
public uint dwBroadcastControlChannel;
public uint dwRxLevel;
public uint dwRxLevelFull;
public uint dwRxLevelSub;
public uint dwRxQuality;
public uint dwRxQualityFull;
public uint dwRxQualitySub;
public uint dwIdleTimeSlot;
public uint dwTimingAdvance;
public uint dwGPRSCellID;
public uint dwGPRSBaseStationID;
public uint dwNumBCCH;
}
2.用于异步q回RIL调用l果的回调函数RILRESULTCALLBACK
public delegate void RILRESULTCALLBACK(uint dwCode,
IntPtr hrCmdID,
IntPtr lpData,
uint cbData,
uint dwParam);
3.在RILd发出notify的时候回调的提醒函数RILNOTIFYCALLBACK
public delegate void RILNOTIFYCALLBACK(uint dwCode,
IntPtr lpData,
uint cbData,
uint dwParam);
注意Q这个提醒函数后面不?x)用刎ͼ但它是作为必要的Native函数的参敎ͼ在pinvoke的时候是不可~少?nbsp;
W二? 通过pinvoke引用必要的RIL Native函数
RIL_Initialize Q?RIL_GetCellTowerInfoQRIL_Deinitialize
[DllImport("ril.dll")]
private static extern IntPtr RIL_Initialize(uint dwIndex,
RILRESULTCALLBACK pfnResult,
RILNOTIFYCALLBACK pfnNotify,
uint dwNotificationClasses,
uint dwParam,
out IntPtr lphRil);
手机作ؓ(f)Z必备的移动通信工具Q目前在全球已经有超q?/span>10亿的用户Q其数量q在不断地增ѝ随着Ud多媒体时代的到来Q用手机看电(sh)视,用手机看?sh)?jing)Q用手机听音乐等使用Ud媒体技术的应用Q已l在中国q速发展v来?/span>
一、什么是媒体技术?
媒体技术是从互联网上发展v来的一U传送多媒体数据的技术,其主要特Ҏ(gu)以流Q?/span>streamingQ的形式q行多媒体数据的传输。采用流媒体技术的客户端播攑֙在播放一个多媒体内容之前Q预先下载媒体内容的一部分作ؓ(f)~存Q在缓存中的这部分内容向用h攄q程当中Q该多媒体内容的剩余部分在后台从服务器l箋下蝲到客L(fng)播放器上。这P一边客L(fng)播放器在不断播放~冲Z的多媒体内容Q另一边多媒体内容的其他部分从后台服务器不断地传输到缓冲区中,q样实C所?#8220;边下载,Ҏ(gu)?#8221;式播放?/span>
媒体技术应用到Ud|络和终端上Q称之ؓ(f)Ud媒体技术。从上面所q我们可以看刎ͼUd媒体技术具有三个突出特点:(x)Q?/span>1Q能够实时播放视音频{多媒体内容Q也可以对多媒体内容q行Ҏ(gu)Q具有交互性。可以让用户摆脱被动接受内容的苦|而灵z自丅R随旉地地选择自己惌看的内容Q从而更加个性化。(2Q播攄媒体文件不需要在客户端保存,减少了对客户端存储空间的要求Q也减少了缓存容量的需求。(3Q由于流媒体文g不在客户端保存,从而从一定程度上解决了媒体文件的版权保护问题?/span>
二、手机播放流媒体文g的基本要?/span>
Q一Q手机操作系l?/span>
目前Q智能手机的操作pȝ主要?/span>Symbian?/span>Windows Mobile?/span>Palm?/span>Linux。其?/span>Symbian、和Windows Mobilepȝ的用占据了大多数?/span> Palm的䆾额主要来自它?/span>PDA支持?/span>
1、Symbian操作pȝ
Symbian是诺Z、摩托罗拉、烦(ch)爱立信{几家电(sh)信巨头联合开发的操作pȝQ据l计Q?/span>Symbianq_的智能手机占?/span>70%。该操作pȝ以占用资源小、对g要求低、第三方软g支持q泛{优势,成ؓ(f)目前手机市场上应用最为广泛的产品Q?/span>Symbian操作pȝ下主要?/span>S60?/span>UIQ?/span>S90q三U操作^台?/span>
Q?/span>1Q?/span>Series S60Q?/span>S60操作q_具备?/span>Symbian OS操作pȝ操作的简易性,支持KJAVA?/span>C++开发的针对单手使用的设计,支持的屏q分辨率?/span>176*208象素?/span>S60界面是拥有最多第三方软gQ游戏)的界面,是目?/span>Symbianpȝ中用最q泛的版本。主要支持的手机以诺Z7650?/span>7610?/span>6260{最为典型?/span>
Q?/span>2Q?/span>UIQ SeriesQ?/span>UIQ Series操作q_的特性主要表现在它的多媒体和功能全面的特性?/span>UIQ Series?/span>Symbian OS 的系l架构下Q专门ؓ(f)高端多媒体手设计,可支持手写操作,使用h非常cM PDA 操作Q适用人群主要定位在高端商务用戗主要应用有索爱Ppd以及(qing)诺基?/span>6708?/span>BENQ P30{?/span>
Q?/span>3Q?/span>Series S90Q?/span>Series90?/span>Symbianq_上最q轻的界面,Ҏ(gu)持触ؓ(f)操控模式Q分辨率高达640*320像素。但目前支持Series 90的只有诺Z7700Q未投上市Q和7710两款手机Q更多第三方软g的支持尚需一定时日?/span>
2?/span>Windows Mobile操作pȝ
Q?/span>1Q?/span>Pocket PC PhonepȝQ?/span>Pocket PC是一U手持设备,可帮助用者存储ƈ(g)索电(sh)子邮件、联pMh和约?x)信息,播放多媒体文Ӟ玩赏电(sh)子游戏Q借助MSN Messenger交换文本消息Q浏?/span>Web内容{。主要适用机型?/span>BENQ?/span>P50以及(qing)多普?/span>696?/span>818?/span>828{机型?/span>
Q?/span>2Q?/span>Smartphone pȝQ同是微软公叔R下的产品Q操作界面和WINDOWS非常怼Q注重移动互联和׃功能。没有触控笔和触摸屏Q体现单手操控的理念Q全以数字键盘代ѝ适用机型有多普达?/span>5pd手机?/span>
Q二Q下载安装终端播攑֙
Ҏ(gu)有操作系l及(qing)其不同版本都实现适配的播攑֙是不存在的,Z成本、开发周期及(qing)其它因素的考虑Q属W三方Y件的媒体播攑֙大部分都只是Z以上操作pȝ实现的?/span>
通过WAP|站Q具备上q操作系l的各型h机,可以直接匚w到适合的流媒体播放器。一般在下蝲后会(x)直接q入到播攑֙E序的安装过E,Ҏ(gu)pȝ提示完成安装后,可以随时、随Cn受移动流媒体服务了?/span>
三、手机播放流媒体文g的一般技术过E?/span>
Q一Q?/span>3GPP标准中的协议?/span>
主要包括以下几种Q?/span>
·RTPQ实时传输协议)Q?/span>RTP被定义ؓ(f)在一对一或一对多的传输情况下工作Q其目的是提供时间信息和实现同步,例如Q音频、视频或模拟数据?/span>RTP不处理资源预定,q且不保证实时服务的服务质量Q通常使用UDP来传送数据?/span>
·RTCPQ实时控制协议)Q?/span>RTCP的主要功能是为数据的传送情冉|供反馈。接收端定期报告信息发送给发送端Q报告信息包括:(x)接收端测量到传输q程中的不稳定情况和信息包丢q数量Q?/span>
·RTSPQ实时流协议Q:(x)RTSP被用于徏立和控制q箋媒体的时间同步流。它为多媒体服务扮演“|络q程控制”的角艌Ӏ?/span>RTSP是文本协议ƈ且类?/span>HTTPQ其主要不同之处在于RTSP是标准的媒体协议,q常利用独立传输协议Q通常?/span>RTPQ来传输媒体数据?/span>
·SDPQ会(x)话描q协议)Q?/span>SDP是服务器端生成的描述媒体文g的编码信息以?qing)所在的服务器的链接{信息,客户端通过它来配置播放软g的设|。它是一个简单、可扩展语法的文本协议?/span>
所有这些流媒体相关?/span>议都是利?/span>TCP?/span>UDP传送。其中,RTSP是主要的协议Q在体系l构上位?/span>RTP?/span>RTCP之上Q属于应用层协议Q被用于建立和控制连l媒体的旉同步。它为多媒体服务扮演“|络q程控制”的角艌Ӏ?/span>
Q二Q?/span>RTSP单播操作的过E描q?/span>
一ơ基本的RTSP单播操作Q其实就是用h放一个流媒体节目的过E。首先,客户端通过览一个带RTSP URL地址的网늭Ҏ(gu)来获得媒体片D늚位置。在媒体会(x)话初始化的时候,媒体播攑֙q接到流服务器ƈ发送一?/span>RTSP描述命o(h)。这?#8220;描述命o(h)”包括了客L(fng)可以发送的cM音频信道的数量、支持的媒体cd、屏q尺寸大和q_象素{信息。流服务器通过一?/span>SDP描述来进行反馈,反馈信息包括数量、媒体类型和h带宽。在分析完该描述之后Q客L(fng)Z(x)话中的每一个流发送一?/span>RTSP安装命o(h)Q安装命令告诉服务器在客L(fng)用于接收媒体数据的端口。流媒体q接建立完成后,客户端发送一个播攑֑令,服务器就开始在UDP上传送媒体流Q?/span>RTP包)到客L(fng)。最后,客户端可发送一个终止命令来l束媒体会(x)话?/span>
Q三Q用户从手机上看到的程
上述RTSP操作q程对用h透明的。用户从手机上看到的只是Q当他通过WAP|站选择播放一个节目后Q手机操作系l自动启动了已安装的播放器,播放器通过GPRS|络q接到媒体服务器Qƈ开始缓Ԍ他只需在缓冲到100%前的M时刻点击“播放”按钮Q或{待~冲?/span>100%时播攑֙自动播放Q就可以开始欣赏音视频节目?/span>
Ud媒体技术的应用开创了无线通信|络与互联网、视音频压羃~码技术相融合的新时代Q随着手机?/span>PDA{移动终端品功能的不断提升Q移动流媒体技术必带lh们更多、更好的韌频体验?/span>
(此文完成?006q??
3.接下在项目窗体上的用,看看下面的代码:(x)
每个H体的Closed事g中加入Application.Exit();才能真正的退出程序?br />
2.如何让窗体跟着输入法窗口上U?/strong>Q?br />
当输入文字时需要打开输入法,而当打开输入法的时候输入法?x)直接盖掉下层的E序界面Q导致有时候窗体下方的控g无法q行操作Q输入文字,点击按钮{)Q那么这个时候就需要我们在输入法状态变更的时候出发一些事Ӟ让输入法H口不要盖住E序?br />
首先每次创徏FormQ最好都先添加一个panel做控件的上层容器Q设定好相对panel的位|,q样控g才会(x)Ҏ(gu)panel的变化而变化。之后给InputPanel的EnabledChanged事g加入下面的代码:(x)