美文网首页
Android:来疯源码分析

Android:来疯源码分析

作者: 我在等你回复可你没回 | 来源:发表于2019-08-09 15:30 被阅读0次

通过断点,查看发送数据流程如下


image.png

进一步的入口是
MyRecorder.java
public void startSwapData() {
mEncoderHandler.post(swapDataRunnable);
}

由RenderSrfTex来调用,这个类是什么??

这个类由MyRenderer来调用

    public void setRecorder(MyRecorder recorder) {
        synchronized(this) {
            if (recorder != null) {
                mRenderSrfTex = new RenderSrfTex(mEffectTextureId, recorder);
                mRenderSrfTex.setVideoSize(mVideoWidth, mVideoHeight);
                if(mWatermark != null) {
                    mRenderSrfTex.setWatermark(mWatermark);
                }
            } else {
                mRenderSrfTex = null;
            }
        }
    }

这个又由 CameraVideoController来调用,这个start方法应该就是直播开始的方法了。
public void start() {
    if(mListener == null) {
        return;
    }
    SopCastLog.d(SopCastConstant.TAG, "Start video recording");
    mRecorder = new MyRecorder(mVideoConfiguration);
    mRecorder.setVideoEncodeListener(mListener);
    mRecorder.prepareEncoder();
    mRenderer.setRecorder(mRecorder);
}

这个Controller是在CameraLivingView中初始化的。

    private void initView() {
        CameraVideoController videoController = new CameraVideoController(mRenderer);
        NormalAudioController audioController = new NormalAudioController();
        mStreamController = new StreamController(videoController, audioController);
        mRenderer.setCameraOpenListener(mCameraOpenListener);
    }

这个View直接放在布局里面的

    <com.laifeng.sopcastsdk.ui.CameraLivingView
        android:id="@+id/liveView"
        android:layout_width="match_parent"
        android:layout_height="match_parent"/>

总的Activity的入口是LandscapeActivity

点击开始后的动作是

                    mRtmpSender.setAddress(uploadUrl);
                    mProgressConnecting.setVisibility(View.VISIBLE);
                    Toast.makeText(LandscapeActivity.this, "start connecting", Toast.LENGTH_SHORT).show();
                    mRecordBtn.setBackgroundResource(R.mipmap.ic_record_stop);
                    mRtmpSender.connect();
                    isRecording = true;

相关文章

网友评论

      本文标题:Android:来疯源码分析

      本文链接:https://www.haomeiwen.com/subject/hcdhjctx.html