M300+P1在MSDK5.9.1上使用ReceiveStreamListener接收不到正常的数据

Comments

22 comments

  • Wanlf2014

    遥控器名称:DJI Smart Controller Enterprise.

    0
    Comment actions Permalink
  • DJI Developer Support
    ReceiveStreamListener获取到的视频数据是H264格式的。您试试看用H264格式进行播放呢?我们目前没有遇到过类似的情况。
    0
    Comment actions Permalink
  • Wanlf2014

    一样的。也是不能播放的。在其他设备上,比如M350+P1,Mavic3系列上都是可以的。就M300+P1+DJI Smart Controller Enterprise.不行。

    0
    Comment actions Permalink
  • Wanlf2014

    M300+P1+DJI Smart Controller Enterprise.接收到的数据非常小。5分钟的数据才不到300K.

    0
    Comment actions Permalink
  • yating.liao

    我在M300(固件是09.00.0503)+P1(固件是07.00.01.10)上进行了测试,我测试中并没有出现相同的问题。测试是P1挂载在主云台位置。下面是我写入H264数据到本地的代码,使用的MSDK版本为5.9.0版本。

    0
    Comment actions Permalink
  • Wanlf2014

    跟遥控器是否有关系?我的遥控器android API版本是25,而demo的最低版本是28

    0
    Comment actions Permalink
  • yating.liao

    M300有两款遥控器,但是不同遥控器对应的无人机固件是不同的。我们使用相同的无人机固件进行测试,所以使用遥控器型号也是一样的,即DJI Smart Controller Enterprise.

    我是直接在DEMO的测试工具里增加了一个按钮去开启数据存储到本地,demo所配置的minSDKversion应该是23。

    https://github.com/dji-sdk/Mobile-SDK-Android-V5/blob/dev-sdk-main/SampleCode-V5/android-sdk-v5-as/gradle.properties

    0
    Comment actions Permalink
  • Wanlf2014

    但是实际上我们确实遇到了这个问题,而且必现,相同的代码在别的机型上不会出现这个问题。能否提供一下你们的示例代码?

    0
    Comment actions Permalink
  • DJI Developer Support
    这里是我们的示例代码:https://github.com/dji-sdk/Mobile-SDK-Android-V5 之前回复里有给出我们测试时使用的写入方法。方法是放置在CameraStreamDetailVM里,然后在CameraStreamDetailFragment中通过按钮触发。 https://github.com/dji-sdk/Mobile-SDK-Android-V5/blob/dev-sdk-main/SampleCode-V5/android-sdk-v5-sample/src/main/java/dji/sampleV5/aircraft/pages/CameraStreamDetailFragment.kt
    0
    Comment actions Permalink
  • Wanlf2014

    示例中并未发现你上述写的addReceiveStreamListener测试方法,DEMO示例中的方法我们测试过都是正常的。就是加入addReceiveStreamListener收不到正常数据。

    0
    Comment actions Permalink
  • Wanlf2014

    实际上同样的代码,放在M350上我们没有出现任何问题。放在M300上就有问题,其中相机是同一个相机。遥控器不是同一个遥控器。

    0
    Comment actions Permalink
  • yating.liao

    我是在示例代码的基础上添加了addReceiveStreamListener去写入到本地。方法是放置在CameraStreamDetailVM里,然后在CameraStreamDetailFragment中通过按钮触发。

    0
    Comment actions Permalink
  • Wanlf2014

    是的。我知道,但是依然存在问题。你这个代码放在M350上是正常的,放在M300上不正常。

    0
    Comment actions Permalink
  • Wanlf2014

    首先在M300上我们使用CameraStreamManager.getInstance().putCameraStreamSurface(ComponentIndexType.LEFT_OR_MAIN, surfaceHolder.getSurface(), width,         height, ICameraStreamManager.ScaleType.CENTER_INSIDE); 进行画面显示,这是正常的,说明负载挂在正常,然后使用CameraStreamManager.getInstance().addReceiveStreamListener(ComponentIndexType.FPV, receiveStreamListener);进行FPV的数据回传,也是正常的,说明接口调用没问题。其次我们使用CameraStreamManager.getInstance().addReceiveStreamListener(ComponentIndexType.LEFT_OR_MAIN, receiveStreamListener);进行主相机数据回传,数据不正常。然后我们将相机更换到M350,以及同一样的代码控制M350,上述操作都是正常的。所以我们判定这个接口在M300上存在问题。请详细核查一下。谢谢!

    0
    Comment actions Permalink
  • DJI Developer Support
    我会使用最新版本的MSDK在此进行验证的。请等待一段时间。
    0
    Comment actions Permalink
  • DJI Developer Support
    我复现到了这个问题。下面是我的测试结果: 1.P1在单拍模式下将ReceiveStreamListener数据写入到本地会出现使用VLC播放绿屏的问题。APP运行在RM500上; 2.P1在录制模式下将ReceiveStreamListener数据写入到本地会出现使用VLC播放正常。APP运行在RM500上; 3.P1在单拍模式下将ReceiveStreamListener数据写入到本地会出现使用VLC正常。APP运行在Android 11的手机上; 4.P1在录制模式下将ReceiveStreamListener数据写入到本地会出现使用VLC正常。APP运行在Android 11的手机上; 我已经将问题提交给了研发进行分析。
    0
    Comment actions Permalink
  • Wanlf2014

    好的。谢谢!

    0
    Comment actions Permalink
  • liuziloong

    有结论吗? 御3E 也出现类似问题

    0
    Comment actions Permalink
  • DJI Developer Support
    Mavic 3E上目前是没有遇到过类似的问题。如果您有稳定或者大概率触发问题的方式以及问题的详细表现,我推荐您就这个问题发布一个帖子或者提交一个工单。
    0
    Comment actions Permalink
  • DJI Developer Support
    M300+带屏智能遥控器+P1出现绿屏问题在5.11版本已经修复了。您可以更新到这个版本体验其效果。
    0
    Comment actions Permalink
  • liuziloong

    我那个问题找到了,是辅助飞行导致了回调的数据多了一路的过来,本来是30fps,开启辅助飞行后是60fps了。 2路流掺和在一起了

    0
    Comment actions Permalink
  • DJI Developer Support
    好的。辅助影像功能目前是仅在Mavic 3行业上使用的功能。辅助影像功能目前在MSDK上还没有正式支持,建议开发者可以关闭再切换至MSDK。
    0
    Comment actions Permalink

Please sign in to leave a comment.