预览是流媒体基本的功能,美摄SDK便捷的实现了预览编程,授权后,利用流媒体上下文和显示控件,可方便的实现预览。
4.1、原理说明
4.1.1、显示控件与流媒体上下文的绑定。
美摄SDK对流媒体上下文和显示控件进行了封装,实现无缝连接,通过connectCapturePreviewWithLiveWindow函数,流媒体数据传递给live控件,进行视频显示。
4.1.2、权限说明
android权限通过requestPermissions函数来进行申请,在申请后将激发onRequestPermissionsResult回调函数。在程序中要重写该函数。该函数原型是:
@Override
public void onRequestPermissionsResult(int requestCode, String permissions[],int[] grantResults);
在该函数中获取权限,开启预览
关于权限申请需要说明的是,在Android SDK版本23之后,权限必须通过对话框授权才可以,在SDK版本23之前,配置文件中说明就可以。
4.1.3、预览函数
开启预览,通过startCapturePreview函数实现。
参数解释看4.5
4.2、程序流程
4.2.1、包导入
导入美摄SDK类库,参考本文档专题2。
4.2.2:授权
添加视频获取权限。
4.2.3:拍摄组件添加
在布局文件中,引入com.meicam.sdk.NvsLiveWindow视频显示组件。
<com.meicam.sdk.NvsLiveWindow
android:layout_width="match_parent"
android:layout_height="400dp"
android:id="@+id/liveWindow" />
4.2.4:声明流媒体上下文对象和livewindow控件对象
流媒体上下文对象具有ship chuli 功能,也就是声明录制对象。在录制的Activity中,声明为成员变量。
private NvsStreamingContext m_streamingContext;
private NvsLiveWindow m_liveWindow = null;
4.2.5、对流媒体对象和上下文对象进行初始化
在Activjty的onCreate函数中,对流媒体上下文对象进行初始化。
代码:
m_streamingContext = NvsStreamingContext.init(this, null);
参数1:this当前Acitivty。