日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 综合教程 >内容正文

综合教程

cocos2dx for android 接入 fmod的过程

發布時間:2023/12/13 综合教程 34 生活家
生活随笔 收集整理的這篇文章主要介紹了 cocos2dx for android 接入 fmod的过程 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

cocos2dx自帶的音效播放有SimpleAudioEngine和AudioEngine兩個,SimpleAudioEngine可以播放簡單的音效,

如果播放音效數量過多的話,多導致有些音效播放失敗。AudioEngine是一個不成熟的音效引擎,筆者在兩個項目中

都試過用它,結果在安卓手機上頻繁切換音效的過程中出現閃退。

fmod很強大,而且一個音效文件可以支持多平臺。而且音效文件不容易被盜。

在官網下載cocos2dx的demo,然后下載對應平臺的fmod的庫,將安裝好的庫文件放在同一個文件夾,另外所有頭文件

也放在一個文件夾內。

win32的庫有:

fmod_vc.lib

fmodL_vc.lib

fmodstudio_vc.lib

fmodstudioL_vc.lib

fsbank_vc.lib

對于64位系統的,可以使用帶64的庫文件。

在vs的庫路徑和附加依賴項中加入寫庫文件,在附加包含目錄添加頭文件目錄,運行文件即可。

對應安卓平臺會有許多問題,比如聲音會出現顫抖,處理方法可以看官網的教學文檔。

安卓接入過程:

1.修改項目的jni目錄Android.mk文件。在文件開始的地方加入

 1 LOCAL_PATH := $(call my-dir)
 2 
 3 include $(CLEAR_VARS)
 4 LOCAL_MODULE := fmodstudio
 5 LOCAL_SRC_FILES := prebuilt/$(TARGET_ARCH_ABI)/libfmodstudio.so
 6 include $(PREBUILT_SHARED_LIBRARY)
 7 
 8 include $(CLEAR_VARS)
 9 LOCAL_MODULE := fmodstudioL
10 LOCAL_SRC_FILES := prebuilt/$(TARGET_ARCH_ABI)/libfmodstudioL.so
11 include $(PREBUILT_SHARED_LIBRARY)
12 
13 include $(CLEAR_VARS)
14 LOCAL_MODULE := fmod
15 LOCAL_SRC_FILES := prebuilt/$(TARGET_ARCH_ABI)/libfmod.so
16 include $(PREBUILT_SHARED_LIBRARY)
17 
18 include $(CLEAR_VARS)
19 LOCAL_MODULE := fmodL
20 LOCAL_SRC_FILES := prebuilt/$(TARGET_ARCH_ABI)/libfmodL.so
21 include $(PREBUILT_SHARED_LIBRARY)

View Code

在LOCAL_SRC_FILES變量中加入自己封裝的fmod的cpp文件;

在LOCAL_C_INCLUDES變量中加入fmod頭文件目錄;

在include $(BUILD_SHARED_LIBRARY)上方加入sharelibraies的導入變量:

LOCAL_SHARED_LIBRARIES := fmodL
LOCAL_SHARED_LIBRARIES += fmod
LOCAL_SHARED_LIBRARIES += fmodstudioL
LOCAL_SHARED_LIBRARIES += fmodstudio

include $(BUILD_SHARED_LIBRARY)

在jni的目錄下創建prebuilt文件夾,將fmod的庫的四個文件夾:arm64-v8a、armeabi、armeabi-v7a、x86放在prebuilt文件夾下,

另外還有一個fmod.jar庫,將它放在libs文件夾下

修改安卓的AppActivity啟動文件:

protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
org.fmod.FMOD.init(this);//用于啟動fmod功能

}

protected void onDestroy() {

  super.onDestroy();

org.fmod.FMOD.close();//用于關閉fmod功能

}

  static
{
  System.loadLibrary("fmod");//用于程序開始運行時導入fmod.jar
}

接入過程完成。

注意的是,安卓在加載音效的目錄跟其他平臺有所區別,

下方是區分平臺獲取音效的路徑方法:

const char * getResourcePath(const char *path)
{
if (CC_TARGET_PLATFORM == CC_PLATFORM_ANDROID)
{
char buf[256];
sprintf(buf, "file:///android_asset/%s", path);
return buf;
}
else
{
return path;
}
}

如果項目中使用了fmod的錄音功能,需要在AndroidManifest.xml文件中加入路徑權限:android.permission.RECORD_AUDIO

在項目目錄下通過控制臺編譯打包:cocos compile -p android

轉載請注明出處,from博客園HemJohn

總結

以上是生活随笔為你收集整理的cocos2dx for android 接入 fmod的过程的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。