Vine的重点在recorder中的 CombingRunnable 和 VideoRecorder
监听录像结束按钮方法
private final View.OnClickListener mFinishClicker = new View.OnClickListener()
{
public void onClick(View paramView)
{
VineRecorder.this.finish("finishClicker");
}
};
点击录像结束按钮时执行的方法
private void finish(String paramString)
{
this.mFinished = true;
this.mHasPreviewedAlready = true;
setHasPreviewedAlreadyIfNeeded();
if (this.mVideoController.isRecordingStarted())
{
stop(paramString, null, true, false);
this.mCanKeepRecording = false;
}
do
return;
while (this.mOnCompleteConsumer == null);
this.mOnCompleteConsumer.run();
}
设置录制视图长宽的方法,其中有点乱
private void adjustBoundaries(CameraSetting paramCameraSetting){}
这个一会而再管
VideoRecorder中有两个方法完全调用了JNI,反编译不出来
private void startRecording(String paramString){}
protected RecordingFile doInBackground(Void[] paramArrayOfVoid){}
这个类是管视频编辑时的拖拽效果的
public class DragSortWidget extends RelativeLayout
看完VideoRecorder,接下来是与之最紧密的 RecordController //VideoRecorder有三千多行,只看重点其他扫过
public class RecordController
implements TextureView.SurfaceTextureListener, Camera.PreviewCallback, SurfaceHolder.Callback, Camera.AutoFocusCallback
它实现的几个接口都蛮重要的,可见该类的价值
TextureView.SurfaceTextureListener // texture是 质地 的意思
TextureView 是在Android 4.0 里新加的View。和SurfaceView类似。 但是TextureView是一个全新的视角,允许你来显示内容流,比如视频或一个开放式绘图介面现场。
http://www.cnblogs.com/d-xtl/archive/2012/09/11/2679670.html
我觉得这个在Vine中应该使用在GhostMode下的半透明背景图
在RecordController中,初始化时就用到了CameraManager,里面的东西都很重要。
有点头大了,明日再看Vine。
---------------------------------------------------------------
这三个分别是玩拍,微视,秒拍的apk,根据命名在反编译出的包中,很容易找到他们的源代码。
玩拍反编译出的,命名的包名很奇怪。
秒拍反编译出如下图, 包的命名中vine的字眼很醒目,其中大部分代码也在vine这个包中
微视这个里面东西比较多,毕竟是腾讯的产品,什么都想放里面,而且代码混淆的比较多,不容易看。
看来今天先就到这里吧。