使用新的DJI-UXSDK-iOS 4.7,找不到FFmpeg库时,应用程序编译出错

问题描述 投票:3回答:3

我刚刚在我的项目中将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框架中,但现在我想它必须以其他方式包含,有没有人设法用这个新版本成功编译项目?

谢谢,

纳乔

dji-sdk
3个回答
7
投票

正如Lisa所述,问题是我没有包含DJIWidget文件。但由于包含并不简单,而且由于文档尚未更新,我将在此处发布上传到DJI Mobile SDK 4.7时成功编译iOS应用程序的步骤:

  • 在Xcode中打开您的项目,并从VideoPreviewer文件夹中删除Frameworks文件夹
  • 克隆Mobile-UXSDK-iOS回购。 git clone https://github.com/dji-sdk/Mobile-UXSDK-iOS
  • 将文件夹Mobile-UXSDK-iOS/Sample Code/DJIWidget复制到*.xcworkspace所在的根文件夹中。请务必包含该文件夹的所有内容:

  • 然后将DJIWIdget.xcodeprojFFmpeg.framework拖放到Xcode项目的Framework文件夹中,如下截图所示:
  • 转到项目设置,在常规选项卡下导航到Embedded Binaries并仅添加FFmpeg框架,如下面的屏幕截图
  • 然后,无论您在代码中导入<VideoPreviewer/VideoPreviewer.h>,都应该用<DJIWidget/DJIWidget.h>替换它
  • 最后,在您的代码中,您必须使用重命名的组件VideoPreviewer替换对DJIVideoPreviewer组件的所有调用。所以例如[[VideoPreviewer instance] start];现在应该是[[DJIVideoPreviewer instance] start];

就是这样,之后你的应用程序应该编译,你应该得到无人机的视频反馈。


3
投票

看起来你错过了引入DJIWidget file - 尝试整合它,这应该照顾你的崩溃。如果您需要有关如何进行集成的示例,请参阅我们的Sample Code。此外,如果您以前使用它,则必须删除ios-videopreviewer项目。我们刚刚使用此提示更新了发行说明。


0
投票

Nacho的回答让我大部分都在那里,但我还需要将DJIWidget框架添加到添加了FFMPEG框架的嵌入式二进制文件部分。将DJIWidget项目拖动到框架文件夹后,按下此部分底部的“+”后显示:

enter image description here

此外,DJIWidget项目已移至其自己的单独URL:https://github.com/dji-sdk/DJIWidget

© www.soinside.com 2019 - 2024. All rights reserved.