class ICameraStreamManager
interface ICameraStreamManager
|
包: | dji.v5.manager.interfaces |
描述:
相机码流管理类。支持相机镜头的码流显示、获取码流数据和帧数据等功能。以下是接口使用流程:
通过addAvailableCameraUpdatedListener
添加监听器获取可用的相机索引。 调用putCameraStreamSurface
将相机码流的画面显示到特定的的surface中。 添加码流数据监听器addReceiveStreamListener
来接收码流数据,码流数据可用于自行解码显示和第三方直播等功能。 添加帧数据监听器addFrameListener
来接收帧数据。帧数据可以用于AI识别等功能的算法处理。
MSDK 5.8.0开始支持
类成员:
method addAvailableCameraUpdatedListener
void addAvailableCameraUpdatedListener(@NonNull AvailableCameraUpdatedListener listener)
|
包: | dji.v5.manager.interfaces |
描述:
设置可用相机监听器。通过此监听器可以监听可用的相机索引。获取到可用的相机索引以后可以调用putCameraStreamSurface
显示特定相机的码流。
MSDK 5.8.0开始支持
输入参数:
method removeAvailableCameraUpdatedListener
void removeAvailableCameraUpdatedListener(@NonNull AvailableCameraUpdatedListener listener)
|
包: | dji.v5.manager.interfaces |
描述:
移除可用相机监听器。
MSDK 5.8.0开始支持
输入参数:
method putCameraStreamSurface
void putCameraStreamSurface(@NonNull ComponentIndexType cameraIndex, @NonNull Surface surface, int surfaceWidth, int surfaceHeight, @NonNull ScaleType scaleType)
|
包: | dji.v5.manager.interfaces |
描述:
将相机码流的画面显示到特定的的surface中,单个surface只能显示一个相机的码流画面。如果针对同一个surface多次调用此接口,将进行该surface的参数更新,比如更新相机索引,surface的宽高和缩放类型。
注意:
如果你希望显示不同相机镜头的画面,你可以调用KeyCameraVideoStreamSource
进行相机镜头切换。
MSDK 5.8.0开始支持
输入参数:
@NonNull ComponentIndexType cameraIndex | 设置需要进行码流显示的相机索引。 |
@NonNull Surface surface | 设置需要进行码流显示的surface。支持SurfaceView、TextureView和MediaCodeC的surface,不支持GLSurfaceView的surface以及任何和OpenGL绑定的surface。 |
int surfaceWidth | 设置需要进行码流显示的surface宽度。 |
int surfaceHeight | 设置需要进行码流显示的surface高度。 |
@NonNull ScaleType scaleType | 设置需要进行码流显示的surface的缩放类型。 |
method removeCameraStreamSurface
void removeCameraStreamSurface(@NonNull Surface surface)
|
包: | dji.v5.manager.interfaces |
描述:
移除已经添加的surface,当你不再需要使用该surface的时候,请调用此接口移除已经添加的surface,否则会导致内存泄漏。移除后该surface将不再显示相机画面。
MSDK 5.8.0开始支持
输入参数:
@NonNull Surface surface | 设置需要移除的Surface。 |
method addReceiveStreamListener
void addReceiveStreamListener(@NonNull ComponentIndexType cameraIndex, @NonNull ReceiveStreamListener listener)
|
包: | dji.v5.manager.interfaces |
描述:
添加码流数据监听器。通过此监听器可以接收指定相机的码流数据。你可以使用此码流数据自行解码显示或者实现第三方直播等功能。
MSDK 5.8.0开始支持
输入参数:
method removeReceiveStreamListener
void removeReceiveStreamListener(@NonNull ReceiveStreamListener listener)
|
包: | dji.v5.manager.interfaces |
描述:
移除码流数据监听器。
MSDK 5.8.0开始支持
输入参数:
method addFrameListener
void addFrameListener(@NonNull ComponentIndexType cameraIndex, @NonNull FrameFormat format, @NonNull CameraFrameListener listener)
|
包: | dji.v5.manager.interfaces |
描述:
添加帧数据监听器。通过此监听器可以监听指定相机解码后的帧数据,你可以使用帧数据实现AI识别等功能。
MSDK 5.8.0开始支持
输入参数:
method removeFrameListener
void removeFrameListener(@NonNull CameraFrameListener listener)
|
包: | dji.v5.manager.interfaces |
描述:
移除帧数据监听器。
MSDK 5.8.0开始支持
输入参数:
method setKeepAliveDecoding
void setKeepAliveDecoding(boolean isKeepALive)
|
包: | dji.v5.manager.interfaces |
描述:
是否让解码器在后台持续解码,默认值为false
。如果为false
,当模块内部没有引用任何Surface、ReceiveStreamListener、CameraFrameListener的时候,解码器会暂停解码以降低后台性能/电量的消耗,但是这会增加首次推送相机码流数据的延迟。如果为true
,那么解码器会持续在后台解码,这会增加性能/电量的消耗,但是可以降低首次推送相机码流数据的延迟。
MSDK 5.8.0开始支持
输入参数:
boolean isKeepALive | true 表示解码器在后台持续解码。 |
method getLiveViewLocationWithGPS
@NonNull PinPointInfo getLiveViewLocationWithGPS(@NonNull LocationCoordinate3D pointPos, @NonNull ComponentIndexType type)
|
包: | dji.v5.manager.interfaces |
描述:
获取GPS点的Pin点信息,用于在图传界面中显示GPS点的相对位置。
MSDK 5.9.0开始支持
输入参数:
返回值:
enum MimeType
包: | dji.v5.manager.interfaces |
描述:
编解码的媒体类型,支持H264和H265。
MSDK 5.8.0开始支持
Enum Members:
Class Members:
unknown
包: | dji.v5.manager.interfaces |
描述:
画面缩放类型。
MSDK 5.8.0开始支持
Members
enum Result
包: | dji.v5.manager.datacenter.camera.view |
描述:
Pin点回调结果。
Enum Members:
SUCCESS | 成功获取Pin点位置,Pin点在图传界面中。 |
SUCCESS_BUT_OUT_OF_SCREEN | 成功获取Pin点位置,但该点不在图传界面中,应该显示在侧面,请参考DJI Pilot。 |
FAILED | 获取Pin点位置失败。 |
INVALID_DRONE_POSITION | 获取Pin点位置失败,因为无法获取飞行器位置。 |
INVALID_POINT_POSITION | 获取Pin点位置失败,因为设置的GPS位置是无效的。 |
GIMBAL_ATTI_ERROR | 获取Pin点位置失败,因为云台姿态是无效的。 |
CAMEAR_ERROR | 获取Pin点位置失败,因为相机错误。 |
Class Members: