cocos2dx 音频模块分析(2):背景音乐,cocos2dx模块

  次阅读 作者:智能小宝 来源:互联网 2015-09-28 11:21 我要评论(0)

cocos2dx 音频模块分析(2):背景音乐,cocos2dx模块

cocos2dx 音频模块分析(2): 背景音乐部分

我在(1)已经分析了一些东西,这里接着分析,这一篇我们主要分析背景音乐文件的播放,

还是基于android平台:

1、

这里只是背景音乐的预加载,为什么要进行预加载呢?

主要是加载音乐文件是比较耗时的,如果我们没有预加载就直接播放也是可以的,

但是会有一定的延时,因为如果没有预加载,就直接播放,也是会先进行加载音乐文件,

然后进行播放。

void SimpleAudioEngine::preloadBackgroundMusic(const char* pszFilePath)

{

std::string fullPath = getFullPathWithoutAssetsPrefix(pszFilePath);

preloadBackgroundMusicJNI(fullPath.c_str());

}

其实加载背景音乐最终调用android端:

public void preloadBackgroundMusic(final String pPath) {

if ((this.mCurrentPath == null) || (!this.mCurrentPath.equals(pPath))) {

// preload new background music

// release old resource and create a new one

// 如果我们播放的是一个新的背景音乐文件,那么我们需要先释放旧的播放器,然后创建一个新的

// Releases resources associated with this MediaPlayer object.

if (this.mBackgroundMediaPlayer != null) {

this.mBackgroundMediaPlayer.release();

}

//创建一个播放器即MediaPlayer类的实例

this.mBackgroundMediaPlayer = this.createMediaplayer(pPath);

// record the path

// 记录当前播放的背景音乐文件,因为下次如果播放的是同一个音乐

// 文件,那么我们就可以直接进行播放了,不用再重新创建MediaPlayer类的实例

this.mCurrentPath = pPath;

}

}

----->>>

/**

* create mediaplayer for music

*

* @param pPath

*the pPath relative to assets

* @return

*/

private MediaPlayer createMediaplayer(final String pPath) {

MediaPlayer mediaPlayer = new MediaPlayer();

try {

//对绝对路径和包里的路径进行区分处理,当最终的目的就是设置播放源

if (pPath.startsWith("/")) {

final FileInputStream fis = new FileInputStream(pPath);

mediaPlayer.setDataSource(fis.getFD());

fis.close();

} else {

final AssetFileDescriptor assetFileDescritor = this.mContext.getAssets().openFd(pPath);

mediaPlayer.setDataSource(assetFileDescritor.getFileDescriptor(), assetFileDescritor.getStartOffset(), assetFileDescritor.getLength());

}

//播放器前需要做些准备工作,这个只是android的api,不明白的话,查下文档。

本站文章信息来源于网络以及网友投稿,本站只负责对文章进行整理、排版、编辑,是出于传递更多信息之目的,并不意味着赞同其观点或证实其内容的真实性。如果您有什么意见或建议,请联系QQ28-1688-302!

人工智能实验室
相关文章相关文章
  • 韩春雨称已能重复实验结果 近期将有消息公布

    韩春雨称已能重复实验结果 近期将有消息公布

  • 无人驾驶汽车如何改变城市生活?听听他们怎么说

    无人驾驶汽车如何改变城市生活?听听他们怎么说

  • 未来两年人工智能要怎么走?看这篇就够了

    未来两年人工智能要怎么走?看这篇就够了

  • 英国研发“杀生”机器人 通过生命体获取能量

    英国研发“杀生”机器人 通过生命体获取能量

网友点评网友点评
阅读推荐阅读推荐

据国外媒体报道,在过去两年内,聊天机器人(chatbot)、人工智能以及机器学习的研发和采用取得了巨大进展。许多初创公司正利用人工智能和...

霍金 视觉中国 图 英国著名物理学家霍金(Stephen Hawking)再次就人工智能(AI)发声,他认为:对于人类来说,强大AI的出现可能是最美妙的...

文|郑娟娟 今年,人工智能(AI) 60岁了。在AI60岁的时候,笔者想要介绍一下AI100,一个刚刚2岁的研究项目,但它的预设寿命是100年,甚至更长...

AlphaGo与李世石的人机大战,为大众迅速普及了人工智能的概念。 但对谷歌而言,除了下围棋,现在的人工智能进展到哪一步了?未来,人工智能...