M300+P1在MSDK5.9.1上使用ReceiveStreamListener接收不到正常的数据
您好!
我们使用MSDK-V5.9.1调用ReceiveStreamListener无法获得正常数据,设备时M300+P1;
飞行器固件版本:09.00.0503,ZenmuseP1的固件版本是07.00.01.10,遥控器的固件版本是09.00.0501(这个遥控器最高支持的androidAPI为25,而最新的demo使用最低的androidAPI为28);
我们使用LEFT_OR_MAIN接收数据:
CameraStreamManager.getInstance().addReceiveStreamListener(ComponentIndexType.LEFT_OR_MAIN, receiveStreamListener);
无法获得正常的h265数据,保存下来使用vlc播放是绿屏视频。
我们使用FPV接收数据:
CameraStreamManager.getInstance().addReceiveStreamListener(ComponentIndexType.FPV, receiveStreamListener);
能正常获得H265数据,保存下来的数据也是可以正常播放的。
请问这是什么情况?
-
M300有两款遥控器,但是不同遥控器对应的无人机固件是不同的。我们使用相同的无人机固件进行测试,所以使用遥控器型号也是一样的,即DJI Smart Controller Enterprise.
我是直接在DEMO的测试工具里增加了一个按钮去开启数据存储到本地,demo所配置的minSDKversion应该是23。
-
这里是我们的示例代码: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 -
首先在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上存在问题。请详细核查一下。谢谢!
-
我复现到了这个问题。下面是我的测试结果: 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的手机上; 我已经将问题提交给了研发进行分析。
Please sign in to leave a comment.
Comments
22 comments