cocos2d-之音乐背景播放
Posted gccbuaa
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了cocos2d-之音乐背景播放相关的知识,希望对你有一定的参考价值。
1.先加入头文件
#include <SimpleAudioEngine.h>
using namespace CocosDenshion;//为了方便以下的函数使用,使用命名空间
2.在init()函数里面加入代码:
//(有些新手)在运行以下的代码,出现无法识别SimpleAudioEngine的原因就是没有载入SimpleAudioEngine.h头文件。
SimpleAudioEngine::sharedEngine()->preloadBackgroundMusic("F:/mp3/骆集益-仙剑奇侠传四背景音乐之战斗曲二.mp3");
//预载入,这句话,看你需求怎么。能够不要
SimpleAudioEngine::sharedEngine()->playBackgroundMusic("F:/mp3/骆集益-仙剑奇侠传四背景音乐之战斗曲二.mp3",true);
//播放,true代表为循环播放。
以下是播放一些音效
//预载入背景音乐
SimpleAudioEngine::sharedEngine()->preloadBackgroundMusic( "F:/mp3/骆集益-仙剑奇侠传四背景音乐之战斗曲二.mp3" );
//播放背景音乐
SimpleAudioEngine::sharedEngine()->playBackgroundMusic("F:/mp3/骆集益-仙剑奇侠传四背景音乐之战斗曲二.mp3");
//预载入音效
SimpleAudioEngine::sharedEngine()->preloadEffect("F:/mp3/骆集益-仙剑奇侠传四背景音乐之战斗曲二.mp3");
//播放音效
SimpleAudioEngine::sharedEngine()->playEffect("F:/mp3/骆集益-仙剑奇侠传四背景音乐之战斗曲二.mp3");
3.这也算是一个重要的步骤,那就是释放操作,我们进行播放的时候,
内部代码进行了初始化的操作,
而程序关闭后。默认不会帮我们进行释放,
所以我们结束后程序之前,须要自己去释放。
(事实上对于熟悉dx 和opnegl的都会知道进行这个操作,由于我们曾自己写过算比較底层的操作,如今我们用的cocos2d封装好的类进行操作,
所以有基础的去学习某个游戏引擎和框架都有作用的)
那怎么操作?
重写这个函数 void onExit();
并在里面加入代码
void HelloWorld::onExit()
{
SimpleAudioEngine::sharedEngine()->end();
CCLayer::onExit();
}
以下就是关于能播放的音乐和音效格式的介绍:
CocosDenshion引擎库实际上是对系统音频API的封装。因此它支持的音频文件格式与平台有关。
CocosDenshion支持的音乐格式
平台 |
支持的常见文件格式 |
l 备注 |
mp3、mid、ogg和wav |
l 能够播放android.media. l MediaPlayer所支持的全部格式 |
|
aac、caf、mp3、m4a和wav |
l 能够播放AVAudioPlayer l 所支持的全部格式 |
|
Windows |
mid、mp3和wav |
l 无 |
CocosDenshion支持的音效格式
平台 |
支持的常见文件格式 |
l 备注 |
Android |
ogg和wav |
l 对wav的支持并不完美 |
iOS |
caf和wav |
l 能够播放Cocos2d-iPhone l CocosDenshion所支持的全部格式 |
l Windows |
mid和wav |
l 无 |
以上是关于cocos2d-之音乐背景播放的主要内容,如果未能解决你的问题,请参考以下文章
replacescene 在我的游戏 cocos2d ios 中停止背景音乐