SpyDroid

SpyDroid源码分析系列17:SpyDroid上传AAC音频原理7 2013-11-11

本节主要解答如何发送数据的.当然了,通过RTCP和RTP协议. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ final MediaCodecInputStream inputStream = new MediaCodecInputStream(mMediaCodec); 我们知道一个音频数据通过以下流程: 从麦克获得原始数据->编码->网络发送->接收方解码->播放 这里我们从编码后的数据源获得了一个输入流,如果读这个数据,就可以得到A

SpyDroid源码分析系列15:SpyDroid上传AAC音频原理5 2013-11-07

所有的初始化工作都做好了,现在开始启动运行! session.start(0); 参数0表示启动音频,1表示启动视频 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Stream stream = id==0 ? mAudioStream : mVideoStream; //指向音频流 ~~~~~~~~~~~~ stream.setTimeToLive(mTimeToLive); 对于setTimeToLive方法来说,在public interface Stre

SpyDroid源码分析系列12:SpyDroid上传AAC音频原理2 2013-11-07

俗话说,巧妇难为无米之炊,现在我们已经有了所有的配料,那就赶紧下锅吧. 接下来的代码,才是SpyDroid自己写的代码,让我们来研究下: ~~~~~~~~~~~~~接下来执行: this.session = this.sessionbuilderaac.build(); 进入build函数,让我们来执行下: ~~~~~~~~~~~~~接下来执行: Session session;session = new Session(); 我们看public Session() {的第一行代码是:this(

SpyDroid源码分析系列9:AudioStream之方法分析 2013-11-05

SpyDroid源码分析系列9:AudioStream之方法分析
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ public AudioStream()  {   setAudioSource(MediaRecorder.AudioSource.CAMCORDER);  }   public void setAudioSource(int audioSource)  {   mAudioSource = audioSource ...

SpyDroid源码分析系列8:AudioStream之成员分析 2013-11-05

SpyDroid源码分析系列8:AudioStream之成员分析
位置:net.majorkernelpanic.streaming.audio文件夹下. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ protected int mAudioSource; //设置音频数据源 protected int mOutputFormat ...

SpyDroid源码分析系列6:AACStream之成员分析 2013-11-05

SpyDroid源码分析系列6:AACStream之成员分析
位置:net.majorkernelpanic.streaming.audio文件夹下. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 下面开始分析各个成员的含义: public final static String TAG = "AACStream"; //设置类的tag ~~~~~~~~~~~~~~~~~~~~~~~~~~~ ...

SpyDroid源码分析系列4:Session之成员分析 2013-11-05

SpyDroid源码分析系列4:Session之成员分析
位置: net.majorkernelpanic.streaming文件夹下. ~~~~~~~~~~ public final static String TAG = "Session";//设置类的标签// Prevents threads from modifying two sessions simultaneouslyprivate static O ...

SpyDroid源码分析系列3:SessionBuilder之方法分析 2013-11-05

SpyDroid源码分析系列3:SessionBuilder之方法分析
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~方法如下: 好,下面开始来各个击破. ~~~~~~~~~~~~~~~~~~~~ // Removes the default public constructorprivate SessionBuilder() {}//设置为私有函数,这样外界无法构造出一个SessionBuilder对象,只能通过getI ...
一周排行