接入的版本为Wwise SDK 2017.2.0

首先下载github.com/wwisesamples,借用里面的WwiseWrapper(做些修改)

  • win

1.添加附加包含目录

载入超时,点击重试

2.添加附加库目录

载入超时,点击重试

3.在工程中添加文件

  • Android

1.修改Application.mk

2.修改Android.mk(可根据需求增加或删除插件)

LOCAL_PATH := $(call my-dir)

include $(CLEAR_VARS)

ifndef AK_CONFIG
#AK_CONFIG := Profile
AK_CONFIG := Release
endif

ifneq ($(AK_CONFIG), Debug)
NDK_DEBUG := 1
endif

AK_ANDROID := 1

WWISESDK := E:/workspace/Wwise/SDK

include $(CLEAR_VARS)
#SDK_LIB_DIR := ${WWISESDK}/Android_$(TARGET_ARCH_ABI)/$(AK_CONFIG)/lib
SDK_LIB_DIR := ${WWISESDK}/Android_armeabi-v7a/Release/lib

ifneq ($(AK_CONFIG), Release)
LOCAL_MODULE := CommunicationCentral
LOCAL_SRC_FILES := $(SDK_LIB_DIR)/libCommunicationCentral.a
include $(PREBUILT_STATIC_LIBRARY)
include $(CLEAR_VARS)
else
LOCAL_EXPORT_CFLAGS += -DAK_OPTIMIZED
endif

include $(CLEAR_VARS)
LOCAL_MODULE := AkMemoryMgr
LOCAL_SRC_FILES := $(SDK_LIB_DIR)/libAkMemoryMgr.a
include $(PREBUILT_STATIC_LIBRARY)

include $(CLEAR_VARS)
LOCAL_MODULE := AkSoundEngine
LOCAL_SRC_FILES := $(SDK_LIB_DIR)/libAkSoundEngine.a
include $(PREBUILT_STATIC_LIBRARY)

include $(CLEAR_VARS)
LOCAL_MODULE := AkStreamMgr
LOCAL_SRC_FILES := $(SDK_LIB_DIR)/libAkStreamMgr.a
include $(PREBUILT_STATIC_LIBRARY)

include $(CLEAR_VARS)
LOCAL_MODULE := AkMusicEngine
LOCAL_SRC_FILES := $(SDK_LIB_DIR)/libAkMusicEngine.a
include $(PREBUILT_STATIC_LIBRARY)

include $(CLEAR_VARS)
LOCAL_MODULE := AkVorbisDecoder
LOCAL_SRC_FILES := $(SDK_LIB_DIR)/libAkVorbisDecoder.a
include $(PREBUILT_STATIC_LIBRARY)

include $(CLEAR_VARS)
LOCAL_MODULE := AkCompressorFX
LOCAL_SRC_FILES := $(SDK_LIB_DIR)/libAkCompressorFX.a
include $(PREBUILT_STATIC_LIBRARY)

include $(CLEAR_VARS)
LOCAL_MODULE := AkPeakLimiterFX
LOCAL_SRC_FILES := $(SDK_LIB_DIR)/libAkPeakLimiterFX.a
include $(PREBUILT_STATIC_LIBRARY)

include $(CLEAR_VARS)
LOCAL_MODULE := zip
LOCAL_SRC_FILES := $(SDK_LIB_DIR)/libzip.a
include $(PREBUILT_STATIC_LIBRARY)

include $(CLEAR_VARS)
LOCAL_MODULE := cocos2djs_shared
LOCAL_MODULE_FILENAME := libcocos2djs

ifeq ($(USE_ARM_MODE),1)
LOCAL_ARM_MODE := arm
endif

#wwise
LOCAL_LDLIBS := -llog -lOpenSLES -landroid -lEGL -lGLESv1_CM
LOCAL_CFLAGS := -DLUA_USE_POSIX
LOCAL_CFLAGS += -DAK_DEBUG -DCOCOS_INTEGRATION
LOCAL_WHOLE_STATIC_LIBRARIES += gnustl_static

#bugly
LOCAL_CPP_EXTENSION := .mm .cpp .cc
LOCAL_CFLAGS += -x c++

LOCAL_C_INCLUDES := $(LOCAL_PATH)/../../../Classes

#Wwise
LOCAL_C_INCLUDES +=
$(WWISESDK)/samples/SoundEngine/Android
$(WWISESDK)/samples/SoundEngine/Android/libzip/lib
$(WWISESDK)/samples/SoundEngine/Common
$(WWISESDK)/include
$(WWISESDK)/samples/IntegrationDemo/Android

LOCAL_SRC_FILES := hellojavascript/main.cpp
../../../Classes/AppDelegate.cpp
../../../Classes/jsb_module_register.cpp

LOCAL_SRC_FILES +=
../../../Classes/WwiseWrapper.cpp
../../../Classes/WwiseAudio.cpp
../../../Classes/jsb_wwise_audio.cpp

#bugly
LOCAL_SRC_FILES += ../../../Classes/bugly/CrashReport.mm

#jpush
LOCAL_SRC_FILES += ../../../Classes/jpush/JPushBridge.cpp

#Wwise
LOCAL_SRC_FILES +=
$(WWISESDK)/samples/SoundEngine/Common/AkFileLocationBase.cpp
$(WWISESDK)/samples/SoundEngine/Common/AkFilePackage.cpp
$(WWISESDK)/samples/SoundEngine/Common/AkFilePackageLUT.cpp
$(WWISESDK)/samples/SoundEngine/Android/AkFileHelpers.cpp
$(WWISESDK)/samples/SoundEngine/Android/AkDefaultIOHookBlocking.cpp

ifeq ($(USE_ANY_SDK),1)
LOCAL_SRC_FILES += ../../../Classes/anysdk/SDKManager.cpp
../../../Classes/anysdk/jsb_anysdk_basic_conversions.cpp
../../../Classes/anysdk/manualanysdkbindings.cpp
../../../Classes/anysdk/jsb_anysdk_protocols_auto.cpp

LOCAL_C_INCLUDES += $(LOCAL_PATH)/../../../Classes/anysdk

LOCAL_WHOLE_STATIC_LIBRARIES := PluginProtocolStatic
endif

LOCAL_STATIC_LIBRARIES := cocos2dx_static

LOCAL_EXPORT_CFLAGS := -DCOCOS2D_DEBUG=2

ifneq ($(AK_CONFIG), Release)
LOCAL_STATIC_LIBRARIES += CommunicationCentral
endif
LOCAL_STATIC_LIBRARIES += AkMusicEngine
AkSoundEngine
AkMemoryMgr
AkStreamMgr
AkCompressorFX
AkPeakLimiterFX
zip

include $(BUILD_SHARED_LIBRARY)

$(call import-module, cocos)

3.修改AppActivity.java

@Override
protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);
// Workaround in https://stackoverflow.com/questions/16283079/re-launch-of-activity-on-home-button-but-only-the-first-time/16447508
if (!isTaskRoot()) {
// Android launched another instance of the root activity into an existing task
// so just quietly finish and go away, dropping the user back into the activity
// at the top of the stack (ie: the last state of this task)
// Dont need to finish it again since its finished in super.onCreate .
return;
}
// DO OTHER INITIALIZATION BELOW

s_instance = this;
s_context = this.getApplicationContext();

SDKWrapper.getInstance().init(this);
CAAgent.enableDebug(false);

s_channel = getMetaDataFromAppication(this.getApplicationContext(), "ANDROID_CHANNEL");
if (s_channel == null)
s_channel = "tan8";

//System.out.println("######################channel:" + s_channel);
TalkingDataGA.init(this, "426E9A5F91574F86AFE15FC3A2B2C805", s_channel);

MobSDK.init(this);
}

//Wwise
public static Object getInstance() {
return s_instance;
}

  • ios

1.

2.

$(WWISESDK)/iOS/$(CONFIGURATION)-iphoneos/lib/libAkMusicEngine.a

其中红线框起来的是通信功能,debug模式下添加,release模式下不添加

3.

4.

5.

  • 使用方法

1.初始化Wwise

initWwise()
{
cc.loader.loadRes("sounds/Init", function (err, asset) {
let path = asset.nativeUrl;
WwiseAudio.init(path);
this.loadBnk();
}.bind(this));
}

2.导入bnk

loadBnk()
{
cc.loader.loadRes("sounds/PianoNote", function (err, asset) {
let path = asset.nativeUrl;
WwiseAudio.loadBank(path);
}.bind(this));
}

3.使用(播放,停止,暂停等)

playAudio(eventName, vol)
{
//WwiseAudio.registerGameObj(this._indexAudioObj);
//let audioID = WwiseAudio.postEvent(eventName, 100);
//WwiseAudio.setVolume(this._indexAudioObj, vol);
let audioID = WwiseAudio.playAudio(this._indexAudioObj, eventName, vol);
this._indexAudioObj++;

return audioID;
}

4.在update中添加

WwiseAudio.renderAudio();

4.停止

stopAudio(audioID)
{
WwiseAudio.stopAudio(audioID, 222);
}

5.卸载(暂未绑定到ts中)

// Unregister the "Piano" game object
AK::SoundEngine::UnregisterGameObj(GAME_OBJECT_PIANO);
// Unload the sound bank
AK::SoundEngine::UnloadBank(bnkPath, NULL);

WWISE::terminate();

推荐阅读:

查看原文 >>
相关文章