DJI Mobile SDK Documentation

      class IMediaManager

      interface IMediaManager
      包:dji.v5.manager.interfaces
      描述:

      多媒体文件管理类。提供多媒体文件列表下载,多媒体文件预览,下载和视频播放等功能。

      MSDK 5.0.0开始支持

      类成员:
      method
      method enable
      void enable(CommonCallbacks.CompletionCallback callback)
      包:dji.v5.manager.interfaces
      描述:

      进入多媒体文件管理模块。调用此接口后,相机会进入多媒体文件管理模块,此模式下,你可以拉取多媒体文件列表,可以播放相机中的视频。与此同时,相机将无法拍照录像,图传将无法正常显示,建议你在进入相册功能时调用此接口。

      MSDK 5.0.0开始支持

      输入参数:
      CommonCallbacks.CompletionCallback callback返回执行结果的回调。
      method
      method disable
      void disable(CommonCallbacks.CompletionCallback callback)
      包:dji.v5.manager.interfaces
      描述:

      退出多媒体文件管理模块。调用此接口后,相机会退出多媒体文件管理模块,相机可正常拍照录像,图传将正常显示,建议你在退出相册功能时调用此接口。

      MSDK 5.0.0开始支持

      输入参数:
      CommonCallbacks.CompletionCallback callback返回执行结果的回调。
      method addMediaFileListStateListener
      void addMediaFileListStateListener(MediaFileListStateListener listener)
      包:dji.v5.manager.interfaces
      描述:

      设置多媒体文件列表状态监听器。通过此监听器可以监听多媒体文件列表的状态。

      MSDK 5.0.0开始支持

      输入参数:
      MediaFileListStateListener listener多媒体文件列表状态监听器
      method removeMediaFileListStateListener
      void removeMediaFileListStateListener(MediaFileListStateListener listener)
      包:dji.v5.manager.interfaces
      描述:

      删除多媒体文件列表状态监听器。

      MSDK 5.0.0开始支持

      输入参数:
      MediaFileListStateListener listener多媒体文件列表状态监听器
      method removeAllMediaFileListStateListener
      void removeAllMediaFileListStateListener()
      包:dji.v5.manager.interfaces
      描述:

      删除所有多媒体文件列表状态监听器。

      MSDK 5.0.0开始支持

      method getMediaFileListState
      MediaFileListState getMediaFileListState()
      包:dji.v5.manager.interfaces
      描述:

      获取多媒体文件列表状态,这是一个同步接口。

      MSDK 5.0.0开始支持

      返回值:
      MediaFileListState返回多媒体文件列表状态。
      method setMediaFileDataSource
      void setMediaFileDataSource(MediaFileListDataSource source)
      包:dji.v5.manager.interfaces
      描述:

      设置需要获取的多媒体文件数据源。你可以选择拉取不同存储位置和不同负载中的多媒体文件。

      MSDK 5.0.0开始支持

      输入参数:
      MediaFileListDataSource source多媒体文件数据源。
      method pullMediaFileListFromCamera
      void pullMediaFileListFromCamera(@NonNull PullMediaFileListParam param, CommonCallbacks.CompletionCallback callback)
      包:dji.v5.manager.interfaces
      描述:

      从相机中拉取多媒体文件列表。当多媒体文件列表状态MediaFileListStateIDLE时,需要调用此方法从相机中拉取全量数据。当有新媒体文件产生的时候,MSDK会自动从相机拉取最新的多媒体文件列表。当多媒体文件列表状态MediaFileListState变为UP_TO_DATE时,表示拉取多媒体文件列表已完成,请调用getMediaFileListData获取多媒体文件列表数据。
      注意:
      Zenmuse P1和Zenmuse L1只支持全量拉取多媒体文件列表,设置mediaFileIndex和count无效。


      MSDK 5.0.0开始支持

      输入参数:
      @NonNull PullMediaFileListParam param多媒体文件列表参数。Zenmuse P1和Zenmuse L1只支持全量拉取多媒体文件列表,设置mediaFileIndex和count无效。
      CommonCallbacks.CompletionCallback callback返回执行结果的回调。
      method stopPullMediaFileListFromCamera
      void stopPullMediaFileListFromCamera()
      包:dji.v5.manager.interfaces
      描述:

      停止从相机中拉取多媒体文件列表。

      MSDK 5.0.0开始支持

      method getMediaFileListData
      MediaFileListData getMediaFileListData()
      包:dji.v5.manager.interfaces
      描述:

      获取多媒体文件列表数据。当监听到多媒体文件列表状态MediaFileListStateUP_TO_DATE时,说明多媒体文件列表有更新,需要再次调用此接口更新多媒体文件列表数据。

      MSDK 5.0.0开始支持

      返回值:
      MediaFileListData返回多媒体文件列表数据。
      method deleteMediaFiles
      void deleteMediaFiles(List<MediaFile> files, CommonCallbacks.CompletionCallback callback)
      包:dji.v5.manager.interfaces
      描述:

      删除相机中的多媒体文件。调用此接口后,多媒体文件列表状态MediaFileListState会变成UPDATING,当删除操作完成以后,多媒体文件列表状态MediaFileListStateUP_TO_DATE,请调用getMediaFileListData更新多媒体文件列表数据。

      MSDK 5.0.0开始支持

      输入参数:
      List<MediaFile> files需要删除的多媒体文件列表。
      CommonCallbacks.CompletionCallback callback返回执行结果的回调。
      method setMediaFileXMPCustomInfo
      void setMediaFileXMPCustomInfo(@NonNull String information, CommonCallbacks.CompletionCallback callback)
      包:dji.v5.manager.interfaces
      描述:

      设置XMP自定义信息。设置成功后,每次生成照片文件,XMP自定义信息都会存储在照片文件的XMP元数据中。你可以调用MdeiaFile类中的pullXMPCustomInfoFromCamera方法从相机中拉取指定照片文件的XMP自定义信息。
      注意:
      1. 一次设置多次有效,相机重启后会把自定义信息清除,需要重新设置。
      2. 目前只支持Zenmuse H20系列相机,Zenmuse L1相机,Zenmuse P1相机。


      MSDK 5.7.0开始支持

      输入参数:
      @NonNull String information需要设置的XMP自定义信息。使用UTF-8编码,长度小于或等于31个字符。
      CommonCallbacks.CompletionCallback callback返回执行结果的回调。
      method getMediaFileXMPCustomInfo
      void getMediaFileXMPCustomInfo(@NonNull final CommonCallbacks.CompletionCallbackWithParam<String> callback)
      包:dji.v5.manager.interfaces
      描述:

      获取设置的XMP自定义信息。

      MSDK 5.7.0开始支持

      输入参数:
      @NonNull final CommonCallbacks.CompletionCallbackWithParam<String> callback返回执行结果的回调。
      method
      method playVideo
      @Deprecated
      void playVideo(MediaFile mediaFile, CommonCallbacks.CompletionCallbackWithParam<IVideoFrame> callback)
      包:dji.v5.manager.interfaces
      描述:

      开始播放设置的多媒体文件,媒体文件数据通过回调方法的获取。

    • 1. 如果你希望自己实现解码以播放视频,你通过callback中获取到的视频帧数据IVideoFrame,调用自定义解码器进行解码以播放视频。
    • 2. 你也可以使用DJI提供的解码器IVideoDecoder来进行解码以播放视频。用EXTENDED_STREAM_CHANNEL初始化IVideoDecoder,然后调用setMediaFile把需要解码的媒体文件设置到解码器中,最后调用queueInFrame将callback中获取到的视频帧数据IVideoFrame送入队列进行解码。

    • 注意:
      该接口从MSDK 5.8.0版本开始废弃。请调用playVideoToSurface播放多媒体文件。


      MSDK 5.0.0开始支持

      输入参数:
      MediaFile mediaFile需要播放的多媒体文件。
      CommonCallbacks.CompletionCallbackWithParam<IVideoFrame> callback返回执行结果的回调。
      method playVideoToSurface
      void playVideoToSurface(MediaFile mediaFile,
      Surface surface,
      int surfaceWidth,
      int surfaceHeight,
      ICameraStreamManager.ScaleType scaleType,
      MediaFrameListener listener)
      包:dji.v5.manager.interfaces
      描述:

      开始播放设置的多媒体文件,媒体文件数据通过回调方法的获取。
      注意:
      如果你希望自己实现解码以播放视频,你通过listener中获取到的视频数据,调用自定义解码器进行解码以播放视频。


      MSDK 5.8.0开始支持

      输入参数:
      MediaFile mediaFile需要播放的多媒体文件。
      Surface surface需要播放显示的surface。
      int surfaceWidth需要播放显示surface的宽。
      int surfaceHeight需要播放显示surface的高。
      ICameraStreamManager.ScaleType scaleType设置需要进行码流显示的surface的缩放类型。
      MediaFrameListener listener返回执行结果的回调。
      method
      method seekVideo
      void seekVideo(int position, CommonCallbacks.CompletionCallback callback)
      包:dji.v5.manager.interfaces
      描述:

      跳转播放多媒体文件。可以设置新的播放位置开始播放。

      MSDK 5.0.0开始支持

      输入参数:
      int position需要跳转播放的位置,单位:秒。
      CommonCallbacks.CompletionCallback callback返回执行结果的回调。
      method pauseVideo
      void pauseVideo(CommonCallbacks.CompletionCallback callback)
      包:dji.v5.manager.interfaces
      描述:

      暂停播放多媒体文件。

      MSDK 5.0.0开始支持

      输入参数:
      CommonCallbacks.CompletionCallback callback返回执行结果的回调。
      method resumeVideo
      void resumeVideo(CommonCallbacks.CompletionCallback callback)
      包:dji.v5.manager.interfaces
      描述:

      恢复播放多媒体文件。

      MSDK 5.0.0开始支持

      输入参数:
      CommonCallbacks.CompletionCallback callback返回执行结果的回调。
      method
      method stopVideo
      void stopVideo(CommonCallbacks.CompletionCallback callback)
      包:dji.v5.manager.interfaces
      描述:

      停止播放多媒体文件。

      MSDK 5.0.0开始支持

      输入参数:
      CommonCallbacks.CompletionCallback callback返回执行结果的回调。
      method addVideoPlayStateListener
      void addVideoPlayStateListener(VideoPlayStateListener listener)
      包:dji.v5.manager.interfaces
      描述:

      设置多媒体文件播放状态监听器。通过此监听器可以监听多媒体文件播放的状态。

      MSDK 5.0.0开始支持

      输入参数:
      VideoPlayStateListener listener多媒体文件播放状态监听器
      method removeVideoPlayStateListener
      void removeVideoPlayStateListener(VideoPlayStateListener listener)
      包:dji.v5.manager.interfaces
      描述:

      删除多媒体文件播放状态监听器。

      MSDK 5.0.0开始支持

      输入参数:
      VideoPlayStateListener listener多媒体文件播放状态监听器
      method removeAllVideoPlayStateListener
      void removeAllVideoPlayStateListener()
      包:dji.v5.manager.interfaces
      描述:

      删除所有多媒体文件列表播放监听器。

      MSDK 5.0.0开始支持

      method
      method release
      void release()
      包:dji.v5.manager.interfaces
      描述:

      资源释放。调用此接口将会取消多媒体文件数据下载,清空缩略图缓存,清空多媒体文件列表数据。建议你在系统内存不足的时候调用。

      MSDK 5.0.0开始支持

      enum MediaFileFilter
      enum MediaFileFilter
      包:dji.v5.manager.datacenter.media
      描述:

      拉取多媒体文件列表过滤器设置类。

      MSDK 5.0.0开始支持

      Enum Members:
      VIDEO视频。
      PHOTO照片。
      ALL所有多媒体文件。
      Class Members:
      enum MediaFileListState
      enum MediaFileListState
      包:dji.v5.manager.datacenter.media
      描述:

      多媒体文件列表状态。

      MSDK 5.0.0开始支持

      Enum Members:
      IDLE空闲状态。当多媒体文件列表为空闲状态时,需要调用pullMediaFileListFromCamera从相机中拉取全量数据。
      UP_TO_DATE最新状态。当多媒体文件列表为最新状态时,需要调用getMediaFileListData更新多媒体文件列表数据。
      UPDATING更新中状态。当多媒体文件列表为更新中状态时,表示MSDK正在跟相机中的数据进行同步,当同步完成后,状态会变成UP_TO_DATE,需要调用getMediaFileListData更新多媒体文件列表数据。
      Class Members:
      enum VideoPlayState
      enum VideoPlayState
      包:dji.v5.manager.datacenter.media
      描述:

      多媒体文件播放状态枚举类型。

      MSDK 5.0.0开始支持

      Enum Members:
      IDLE空闲状态。未开启多媒体文件播放功能,可以调用playVideo进行多媒体文件播放。
      PLAYING播放中。
      ENDED播放结束。
      STOPPED停止播放。当调用stopVideo接口成功停止播放多媒体文件后会回调此状态。
      Class Members: