短视频SDK接入(3)---流媒体上下文对象与流媒体显示控件

本文详细介绍了短视频SDK中的核心对象NvsStreamingContext和流媒体显示控件NvsLiveWindow。NvsStreamingContext是处理流媒体的核心,包含了SDK功能引擎,而NvsLiveWindow是用于流媒体显示的自定义控件,提供了多种填充模式和预览方式。文章阐述了两者的工作原理、生命周期、成员函数及应用实例。
摘要由CSDN通过智能技术生成

       流媒体上下文对象是美摄SDK中核心对象,是美摄SDK功能引擎,美摄SDK所有的核心功能都依附于该对象实现。

       流媒体的处理必须有显示部分,美摄SDK做了NvsLiveWindow控件,便捷的对流媒体进行显示。

3.1、说明

       流媒体处理是美摄SDK处理的核心,通过美摄SDK,可以方便的对视频进行处理。视频处理最基本的功能是拍摄。拍摄往往和预览联系在一起。

       NvsStreamingContext流媒体包装了摄像头拍摄的实现,NvsLiveWindow类封装了摄像头拍摄视频的输出。通过这两个类,方便的进行视频和预览处理。

3.2、原理

       流媒体上下文有自己的生命周期。整个SDK的使用应严格遵守SDK本身的生命周期。否则程序运行可能会出现异常。

       生命周期有下面函数来组成,拍摄事件发生前,init进行初始化、其中拍摄函数是startCapturePreview。在拍摄事件发生时,调用stop函数,Activity关闭时间,调用close函数。close函数往往在Activiy的onDestory中调用。

3.3、NvsStreamingContext

       NvsStreamingContext是流媒体核心处理类,美摄SDK的功能主要通过该类来实现。

       流媒体上下文类可视作整个SDK框架的入口。开发过程中,NvsStreamingContext提供了静态sharedInstance接口创建流媒体上下文的唯一实例。 通过这个实例对象,我们可以开启采集设备录制视频,添加采集视频特效,设置拍摄时的各项参数,包括自动聚焦,自动曝光调节, 开关换补光灯等。同时还能够创建时间线,并将时间线与实时预览窗口连接起来,实时预览播放已经拍摄完成的视频。

       视频制作完成后,要销毁流媒体上下文的对象实例。 带特效拍摄时,添加素材资源包(采集特效包,场景资源包等),都得先安装,安装成功后获取packageId才能使用,而内建采集特效(builtin)只需获取特效名称即可使用。

       sdk接口中凡是需要传入资源、授权等文件路径时一定是全路径。

       NvsStreamingContext类中,所有public API除了getAVFileInfo(),detectVideoFileKeyframeInterval(),createVideoFrameRetriever()可以跨线程使用,其他都在UI线程使用!

       该类中含有大量内置接口,进行流媒体回调编程使用。

       该类函数请参考相关API文档。

3.4、NvsLiveWindow

       NvsLiveWindow是美摄SDK自定义的控件,在使用时,通过布局文件进行加载。NvsLiveWindow是Android SurfaceView的增强版。视频处理控制时间,主要通过回调进行实现。SurfaceView主要是动画三维效果实现,NvsLiveWindow可以进行流媒体的处理。

3.4.1、成员函数

       public 成员函数:

       NvsLiveWindow (Context context)

       NvsLiveWindow (Context context, AttributeSet attrs)

       NvsLiveWindow (Context context, AttributeSet attrs, int defStyleAttr)

       NvsLiveWindow (Context context, AttributeSet attrs, int defStyleAttr, int defStyleRes)

       void       setFillMode (int fillMode)                     设置LiveWindow的填充模式

       int   getFillMode ()                                     获取LiveWindow的填充模式

       PointF   mapCanonicalToView (PointF ptCanonical)     时间线坐标转换成视图坐标

       PointF   mapViewToCanonical (PointF ptView)         视图坐标转换成时间线坐标

       PointF   mapNormalizedToView (PointF ptNormalized)    归一化坐标转换成视图坐标

       PointF   mapViewToNormalized (PointF ptView)           视图坐标转换成归一化坐标

       void       clearVideoFrame ()                            清除LiveWindow的视频帧

       Bitmap takeScreenshot ()                              截屏

       void       setBackgro

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值