Cocos2d-x目前最新版本(3.0 rc0)自带的音频引擎仍然还是CocosDenshion,仅提供一些基本功能

对于音乐、音效方面要求较高的游戏而言难以满足要求

所以我们可以使用强大的FMOD引擎来解决需求!它几乎支持所有游戏平台,无论Windows/Linux/Mac/ios/android/Xbox/PlayStation通通支持!

废话不多说,下面up主举例说明如何在Cocos2dx(3.0 rc0)+Android下面使用FMOD音频引擎:

1. 首先到Fmod.org官网下载<Fmod Ex Programmer's API>其中的Android版

2. 将刚刚下载的压缩包中的<api>文件夹解压到proj.android目录中的fmodex文件夹(需自建)

3. 编辑proj.android/jni/Android.mk(红色的部分是我们添加进去的)

LOCAL_PATH := $(call my-dir)

include $(CLEAR_VARS)
LOCAL_MODULE := fmodex
LOCAL_SRC_FILES := ../fmodex/api/lib/$(TARGET_ARCH_ABI)/libfmodex.so
LOCAL_EXPORT_C_INCLUDES := $(LOCAL_PATH)../fmodex/api/inc 
include $(PREBUILT_SHARED_LIBRARY)

include $(CLEAR_VARS)

LOCAL_MODULE := cocos2dcpp_shared
LOCAL_MODULE_FILENAME := libcocos2dcpp
LOCAL_SRC_FILES := hellocpp/main.cpp \
                   ../../Classes/AppDelegate.cpp \
                   ../../Classes/HelloWorldScene.cpp
LOCAL_C_INCLUDES := $(LOCAL_PATH)/../../Classes
LOCAL_WHOLE_STATIC_LIBRARIES := cocos2dx_static
LOCAL_WHOLE_STATIC_LIBRARIES += cocosdenshion_static
LOCAL_WHOLE_STATIC_LIBRARIES += box2d_static
LOCAL_SHARED_LIBRARIES := fmodex

include $(BUILD_SHARED_LIBRARY)
$(call import-module,2d)
$(call import-module,audio/android)
$(call import-module,Box2D)

4. 编辑proj.android/src/org/cocos2dx/cpp/Cocos2dxActivity.java(红色的部分是我们添加进去的)

package org.cocos2dx.cpp;

import android.app.NativeActivity;
import android.os.Bundle;

public class Cocos2dxActivity extends NativeActivity{
    @Override
    protected void onCreate(Bundle savedInstanceState) {
    // TODO Auto-generated method stub
        super.onCreate(savedInstanceState);
    }
    static
    {
        System.loadLibrary("fmodex");
    }

}

OK,这样基本的配置就完成了!

我们可以做一个简单的试验(需要包含fmod.hpp和fmod_errors.h)

 FMOD_RESULT result;FMOD::System *system;result = FMOD::System_Create(&system);result = system->init(100, FMOD_INIT_NORMAL, 0);FMOD::Sound *sound;result = system->createStream("/mnt/sdcard/TEST.mp3", FMOD_DEFAULT, 0, &sound);FMOD::Channel *channel;result = system->playSound(FMOD_CHANNEL_FREE, sound, false, &channel);

这样就可以播放sd卡根目录下的TEST.mp3了~

关于FMOD更多强大的功能可以查阅引擎官方文档,这里就不进行介绍了

另外上面样例cpp中的写法不能读取Assets中的音频只能读取SD卡中的,不过有方法可以解决(请自行百度啦^^)

*转载请注明*

copyright by

scarlet.MP5

【cocos2d-x 3.0】装配FMOD外部音频引擎【Android】相关推荐

  1. FMOD音频引擎简单使用

    现代游戏已经不能没有声音,所以音频引擎成为游戏引擎中不可缺少的一部分.这是一篇介绍现代音频引擎的文章(http://hard.zol.com.cn/labs/2003/0520/60986.shtml ...

  2. 如何制作一个横版格斗过关游戏 Cocos2d x 2 0 4

    分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow 也欢迎大家转载本篇文章.分享知识,造福人民,实现我们中华民族伟大复兴! 本文实践 ...

  3. aptx android8,秒杀苹果无线音频!Android 8.0蓝牙音质支持aptxHD/LDAC

    原标题:秒杀苹果无线音频!Android 8.0蓝牙音质支持aptxHD/LDAC [TechWeb报道]8月25日消息,本周将迎来Android 8.0"奥利奥"系统推送,目前已 ...

  4. 图文并茂使用CocosBuilder制作Cocos2D游戏 分享0

    图文并茂使用CocosBuilder制作Cocos2D游戏  分享0 目 录 The Game 设置工程 创建动画类型的主界面 本文由Zynga 工程师原创,翻译:Iven,张作宸,Butterfly ...

  5. MAGIX Samplitude Pro X7 Suite v18.0 For Windows 高级音频制作软件

    MAGIX Samplitude Pro X7 Suite 是一个具有 32 位/384kHz 分辨率.999 个音频/MIDI 轨道和附加软件包的数字音频软件,支持Windows系统,VST2.VS ...

  6. 浅析alsa声卡驱动snd_pcm_start函数-将音频数据真实的发送到外部音频接口硬件

    转载自链接:浅析alsa声卡驱动snd_pcm_start函数-将音频数据真实的发送到外部音频接口硬件-gliethttp-ChinaUnix博客 http://blog.chinaunix.net/ ...

  7. android 录音命令,音频延迟  |  Android NDK  |  Android Developers

    延迟是指信号在系统中传输所需的时间.下面是常见类型的音频应用相关延迟时间:音频输出延迟时间是指从应用生成音频样本到样本通过耳机插孔或内置扬声器播放之间经历的时间. 音频输入延迟时间是指设备音频输入装置 ...

  8. android 播放3gp音频,说说 Android 中如何操作音频与视频文件

    1 音频 在 Android 中播放音频文件用的是 MediaPlayer 类,它提供了一些较为常用的控制方法. 方法 说明 setDataSource() 指定音频文件位置. prepare() 准 ...

  9. android 7.0独立升级,爆料:Android 7.0用户将可自行升级!

    原标题:爆料:Android 7.0用户将可自行升级! 谷歌:大家好,谷歌武林大会(I/O大会)将在美西时间5月18-20日召开,届时激动人心的Android 7.0就要来啦. 手机厂商:我了个擦,老 ...

最新文章

  1. 在c语言中逗号的作用,关于c语言中的逗号运算符???
  2. 编程软件python中的if用法-总结Python编程中函数的使用要点
  3. python dtype什么意思_DataFrame中的字符串,但dtype是对象
  4. Windows下安装部署DBeaver连接clickhouse
  5. 大地SEO教程学习笔记之八:
  6. 开关 关闭_无论用什么品牌手机,这个开关要关闭,以免耗电又卡顿,抓紧试试...
  7. 程序员,35岁是职业发展的转折点 (1)
  8. PAT甲题题解-1077. Kuchiguse (20)-找相同后缀
  9. Java实现单链表翻转
  10. 2021-05-07PLC的伺服电机与控制器
  11. 完整制作网吧系统全过程
  12. mysql学生管理系统毕业设计_学生成绩管理系统设计与实现(MySQL)
  13. HIMSS宣布 Healthcare IT News和MobiHealth News的国际扩张
  14. FOC控制原理——Clark变换和Park变换
  15. ionic 环境搭建,运行项目到浏览器,android手机,模拟器
  16. win10系统mongoDB 错误1053的处理方法
  17. SpringMVC整合mybatis(终结版)
  18. Arduino基础语法
  19. 3w服务器把信息组织成为,网站前面的www是什么意思?
  20. Java跨年祝福语代码_春节语音祝福短信java也疯狂

热门文章

  1. IC行业四大岗位详细介绍,0基础入门必读
  2. 51单片机c语言试题及答案,单片机考试复习题及答案
  3. CSS3 - 设置渐变颜色背景,线性/放射性/循环
  4. 解决spring的事物注解失效问题
  5. VC++ LoadLibrary失败,错误127(找不到指定的程序)
  6. 青龙京东脚本仓库收集
  7. 关于补丁程序的分类和安装优先级
  8. 【微信小程序】将base64图片保存至本地
  9. 记一次Ubuntu 14 升级 16的过程和理解(1)do-release-upgrade
  10. EFM32例程——CMU