×
Namespaces

Variants
Actions

使用RTP/RTCP API来发送数据

From Nokia Developer Wiki
Jump to: navigation, search
Article Metadata

代码示例
兼容于
文章
翻译:
hoolee
最后由 hamishwillee 在 08 Aug 2012 编辑


详细描述

RTP/RTCP API在SDK API插件包中,可以用来在手机间发送不同的数据类型。Real-time Transport Protocal(RTP)用来发送或接收数据,而RTP control Protocol(RTCP)提供了out-of-band统计以及对RTP流的控制信息。

这篇文章演示了如何打开RTCP,并注册一个Observer获得RTP session中的Receiver report(RP)。接收者还要向发送者报告服务质量。其他的RTCP信息如Sender report(SR),Source description(SDES),End of participation(BYE)以及Application-specific message(APP)可以用来交换RTCP信息。

因为RTCP streaming被用在RTP流中,更多信息关于启动RTP session的信息在下列链接:

Symbian RTP/RTCP API

解决方案

头文件:

Header Files:

 #include <rtpapi.h> 
#include <rtpheader.h>
#include <RtpDef.h>

Link Against:

 LIBRARY rtpservice.lib

Enabling RTCP and registering an observer in an RTP session

 iRtpId = iRtpSession->CreateSessionL( sessionParam,
localPort,
ETrue, //enable RTCP
NULL ); //Set default RTCP parameters
// Set remote RTCP address
TInt err1 = iRtpSession->SetRemoteRtcpAddress(iRtpId, addr2 );<br>
//Register for RTCP callback
err1 = iRtpSession->RegisterRtcpObserver(iRtpId, *this);

Sending a Receiver Report(RR) to sender:

 iRtpSession->SendRtcpRrPacket(aStreamId); //aStreamId is the TRtpId 
//of a received RTP packet.

Receiving the RTCP packet:

 void CRTPEngine::RrReceived( TRtpId aStreamId, TRtpSSRC aSSRC )
{
//Log the received parameters
}

Unregistering the RTCP callback and closing the session:

 iRtpSession->UnregisterRtcpObserver(iRtpId);
iRtpSession->CloseSession(iRtpId);

实例程序

程序使用RTP发送数据包并接收使用RTCP的发送包的回馈。 File:RTPTest.zip

This page was last modified on 8 August 2012, at 01:32.
181 page views in the last 30 days.

Was this page helpful?

Your feedback about this content is important. Let us know what you think.

 

Thank you!

We appreciate your feedback.

×