SpyDroid源码分析系列14:SpyDroid上传AAC音频原理4

现在让我们回到AACLATMPacketizer的初始化函数中来。

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

顺利成章,没有其余工作要做,很好,AACLATMPacketizer也顺利初始化了。

回到AACStream()的初始化函数中来,很好,也没有更多事情要做,AACStream()初始化完毕。

!~~~~~~~~~~~~回到 build()函数中

session.addAudioTrack(stream);

然后执行

switch (mVideoEncoder) 
{
case VIDEO_H263:
session.addVideoTrack(new H263Stream(mCamera));
break;
case VIDEO_H264:
H264Stream stream = new H264Stream(mCamera);
if (mContext!=null) 
stream.setPreferences(PreferenceManager.getDefaultSharedPreferences(mContext));
session.addVideoTrack(stream);
break;
}


if (session.getVideoTrack()!=null) {
VideoStream video = session.getVideoTrack();
video.setFlashState(mFlash);
video.setVideoQuality(VideoQuality.merge(mVideoQuality,video.getVideoQuality()));
video.setPreviewDisplay(mSurfaceHolder);
video.setDestinationPorts(5006);
}

这里由于本文不讲视频,所以可以忽略。

~~~~~~~~~~~~~~~~~~~~~~~~继续执行

然后执行:

if (session.getAudioTrack()!=null) 
{
AudioStream audio = session.getAudioTrack();
audio.setAudioQuality(AudioQuality.merge(mAudioQuality,audio.getAudioQuality()));
audio.setDestinationPorts(5004);
}


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~重点分析audio.setDestinationPorts(5004);

public void setDestinationPorts(int dport) 
{
 if (dport % 2 == 1) 
{
mRtpPort = dport-1;
mRtcpPort = dport;

else 
{


mRtpPort = dport;
mRtcpPort = dport+1;

}

}

如果参数为2,则RTP端口为2,RTCP端口为3

如果参数为3,则RTP端口为2,RTCP端口为3

规律:RTCP=RTP+1,RTP=不超过参数的最大偶数

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

build过程顺利结束,可以稍微休息一会。






你可能感兴趣的:(RTP,rtcp,SpyDroid,SPYDROID.)