*60 2023-05-28 20:49 采纳率: 50%
浏览 37
已结题

android 集成fmod实现变声功能中遇到的问题

使用fmod的示例代码,并根据https://blog.csdn.net/nicolelili1/article/details/103004215一步步进行操作,但是最后运行时应用程序无法找到或加载所需的共享库文件,教程里好像没有导入该库。可以详细教一下吗?
(问过gpt了,不懂的就别来了)

img

  • 写回答

5条回答 默认 最新

  • Android西红柿 2023-05-29 14:33
    关注

    检查下ndk的配置,
    最好是能把你的demo发出来,这样会好看一些

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
  • CSDN-Ada助手 CSDN-AI 官方账号 2023-05-28 22:04
    关注
    评论
  • 瞬间动力 2023-05-28 22:57
    关注

    fmod 是一款音频库,如果你在使用该库的时候遇到了“应用程序无法找到或加载所需的共享库文件”的问题,可能是因为操作系统无法找到该库文件。解决该问题需要将该库文件添加到操作系统的动态链接库搜索路径中。

    以下是一般来说可以解决该问题的方法:

    1. fmod 库文件放到与你的应用程序可执行文件相同的目录下。这是最简单的解决方案,但不一定是最好的做法,因为可能会导致多个应用程序都要复制同一个库文件,造成浪费空间的问题。

    2. fmod 库文件的目录添加到系统的动态链接库搜索路径中。这可以通过在操作系统中设置路径环境变量来完成。例如,在 Windows 系统中,你可以将 fmod 库文件的目录添加到 PATH 环境变量中。

    3. fmod 库文件复制到系统的标准动态链接库目录中。这需要管理员权限才能够完成。在 Windows 系统中,标准库目录通常为 C:\Windows\System32 目录。

    如果你仍然无法解决问题,请检查你使用的 fmod 库是否与你的操作系统和编译器兼容。如果你使用的是 32 位库文件,但是操作系统或者编译器是 64 位的,你也可能会遇到类似的问题。

    希望这些方法能够帮助你解决问题!

    评论
  • 鱼弦 全栈领域创作新星创作者 2023-05-29 10:04
    关注

    根据你的描述,可能是由于你没有正确导入FMOD的库文件导致的。在使用FMOD时,你需要将对应的库文件导入到你的项目中,并将其添加到Android.mk文件或Gradle脚本中进行编译和链接。

    以下是一些可能有用的步骤:

    首先,确保你已经从FMOD官网上下载了适用于Android的FMOD库文件,并将它们放置到你的项目目录中。

    然后,在你的Android Studio项目中,右键点击app模块,选择"New" -> "Folder" -> "JNI Folder",并选择"JNI Folder"的位置和命名。

    接下来,在刚刚创建的JNI Folder中,右键点击"libs"文件夹,选择"New" -> "Folder",并命名为"armeabi-v7a"(如果你的项目需要支持其他CPU架构,请相应地添加其他文件夹)。

    将你从FMOD官网上下载的适用于Android的FMOD库文件复制到"armeabi-v7a"文件夹中。

    最后,在你的项目的Android.mk文件或Gradle脚本中,添加以下内容来编译和链接FMOD库文件:

    
    Android.mk文件:
    
    makefile
    Copy
    LOCAL_PATH := $(call my-dir)
    
    include $(CLEAR_VARS)
    
    LOCAL_MODULE := fmod
    LOCAL_SRC_FILES := libs/armeabi-v7a/libfmod.so
    LOCAL_EXPORT_C_INCLUDES := $(LOCAL_PATH)/inc
    LOCAL_EXPORT_LDLIBS := -llog
    
    include $(PREBUILT_SHARED_LIBRARY)
    Gradle脚本:
    
    
    android {
        // ...
        sourceSets {
            main {
                jniLibs.srcDirs = ['libs']
            }
        }
    }
    
    dependencies {
        // ...
        implementation fileTree(dir: 'libs', include: ['*.so'])
    }
    
    

    在上面的代码中,我们使用了FMOD官方提供的libfmod.so库文件,并将其放置在"libs/armeabi-v7a"文件夹中。然后,在Android.mk文件或Gradle脚本中,我们使用了预编译的共享库模板来编译和链接这个库文件。最后,在Gradle脚本中,我们将"libs"目录添加到了项目的jniLibs.srcDirs中,以便在编译时自动包含这些库文件。

    评论
  • 还有头发的程序员- 2023-05-30 11:33
    关注

    Android基于Fmod实现变音
    非常详细,
    https://blog.csdn.net/u012346890/article/details/121929786

    评论
查看更多回答(4条)

报告相同问题?

问题事件

  • 系统已结题 6月7日
  • 已采纳回答 5月30日
  • 修改了问题 5月28日
  • 创建了问题 5月28日

悬赏问题

  • ¥60 关于海信电视聚好看安装应用的问题
  • ¥15 vue引入sdk后的回调问题
  • ¥15 求一个智能家居控制的代码
  • ¥15 ad软件 pcb布线pcb规则约束编辑器where the object matpcb布线pcb规则约束编辑器where the object matchs怎么没有+15v只有no net
  • ¥15 虚拟机vmnet8 nat模式可以ping通主机,主机也能ping通虚拟机,但是vmnet8一直未识别怎么解决,其次诊断结果就是默认网关不可用
  • ¥20 求各位能用我能理解的话回答超级简单的一些问题
  • ¥15 yolov5双目识别输出坐标代码报错
  • ¥15 这个代码有什么语法错误
  • ¥15 给予STM32按键中断与串口通信
  • ¥15 使用QT实现can通信