我刚刚在我的项目中将DJI-UXSDK-iOS上传到最新版本(4.7),我收到了一个编译错误:
dyld: Library not loaded: @rpath/FFmpeg.framework/FFmpeg
Referenced from: /Users/nachocarnicero/Library/Developer/CoreSimulator/Devices/6107CAFD-8BA7-44D6-A059-A971A22BF695/data/Containers/Bundle/Application/44688981-49A3-4F6F-91E2-15E5381BBBB8/perceptionios.app/Frameworks/DJIUXSDK.framework/DJIUXSDK
Reason: image not found
所以基本上它没有找到FFmpeg库,我相信这与现在根据DJI Mobile SDK 4.7的发行说明现在视频反馈作为小部件包含的事实有关:
用DJIWidget替换VideoPreviewer以获得硬件编码支持
因此以前FFmpeg库包含在VideoPreviewer框架中,但现在我想它必须以其他方式包含,有没有人设法用这个新版本成功编译项目?
谢谢,
纳乔
正如Lisa所述,问题是我没有包含DJIWidget文件。但由于包含并不简单,而且由于文档尚未更新,我将在此处发布上传到DJI Mobile SDK 4.7时成功编译iOS应用程序的步骤:
VideoPreviewer
文件夹中删除Frameworks
文件夹Mobile-UXSDK-iOS
回购。 git clone https://github.com/dji-sdk/Mobile-UXSDK-iOS
Mobile-UXSDK-iOS/Sample Code/DJIWidget
复制到*.xcworkspace
所在的根文件夹中。请务必包含该文件夹的所有内容:DJIWIdget.xcodeproj
和FFmpeg.framework
拖放到Xcode项目的Framework
文件夹中,如下截图所示:Embedded Binaries
并仅添加FFmpeg
框架,如下面的屏幕截图<VideoPreviewer/VideoPreviewer.h>
,都应该用<DJIWidget/DJIWidget.h>
替换它VideoPreviewer
替换对DJIVideoPreviewer
组件的所有调用。所以例如[[VideoPreviewer instance] start];
现在应该是[[DJIVideoPreviewer instance] start]
;就是这样,之后你的应用程序应该编译,你应该得到无人机的视频反馈。
看起来你错过了引入DJIWidget file - 尝试整合它,这应该照顾你的崩溃。如果您需要有关如何进行集成的示例,请参阅我们的Sample Code。此外,如果您以前使用它,则必须删除ios-videopreviewer项目。我们刚刚使用此提示更新了发行说明。
Nacho的回答让我大部分都在那里,但我还需要将DJIWidget框架添加到添加了FFMPEG框架的嵌入式二进制文件部分。将DJIWidget项目拖动到框架文件夹后,按下此部分底部的“+”后显示:
此外,DJIWidget项目已移至其自己的单独URL:https://github.com/dji-sdk/DJIWidget