注册

调用录音后,游戏音效播放不出来的问题。

我游戏是用cocos2dx做的,游戏中有很多音效,音效的播放api是用的SimpleAudioEngine,这是Cocos2d-x提供的一个音频CocosDenshion引擎,其实是封装了OpenAL音频处理库。 我在游戏中加入了环信的语音聊天,但是在调用录音接口后,游戏音效播放不出来了,即使录音完成,也不能再播放,经常有A/0正在占用的log提示。后来我在录音前,先调用了SimpleAudioEngine的API,将音效stop,unload,录音完后再load播放,游戏音效还是播放不出来。
貌似是不同播放引擎间的问题吧,请问有什么解决办法?
已邀请:
你自己的问题吧。我写了一个demo,没有发现问题。
我把它发到网盘了。你看下
http://pan.baidu.com/s/1pJ0tq8V
> forum.php?mod=redirect&goto=findpost&pid=1242&ptid=651
你自己的问题吧。我写了一个demo,没有发现问题。
我把它发到网盘了。你看下
http://pan.baidu.com/s/1pJ0t ...


SimpleAudioEngine播放音效有两套接口,一套是播放背景音乐的(playBackgroundMusic),一套是播放其他音效的(playEffect),代码可以看到这两套最终播放方式有差别的。我也试过,录音前将背景音乐stop并releasedata,录完音后再启动是可以继续播放的。但是其他音效就不可以再播放。

我mac机没带回来,明天下载下你的demo,学习下,看看是不是我说的情况。
> forum.php?mod=redirect&goto=findpost&pid=1244&ptid=651
SimpleAudioEngine播放音效有两套接口,一套是播放背景音乐的(playBackgroundMusic),一套是播放其他音 ...


是的,存在两套,播放音效的确实主要是播放短音频,你的应该是用到的背景音乐,我用playBackgroundMusic实现播放背景音乐,同时也去调用环信的录音,这是不存在冲突的。
> forum.php?mod=redirect&goto=findpost&pid=1247&ptid=651
是的,存在两套,播放音效的确实主要是播放短音频,你的应该是用到的背景音乐,我用playBackgroundMusic ...


我游戏中除了背景音乐,还是几十个短的音频是通过playEffect来播放的,出问题的也是这些音频,这些我需要怎么处理呢?
> forum.php?mod=redirect&goto=findpost&pid=1250&ptid=651
我游戏中除了背景音乐,还是几十个短的音频是通过playEffect来播放的,出问题的也是这些音频,这些我需要 ...


里面也有短音频,你可以试试。不会冲突。
好吧,我真机看了下,确实出现了。
这里讲一下具体原因和处理方式。
在录音的时候,肯定会把
AVAudioSession 的category 设置成 AVAudioSessionCategoryRecord ,只有这样才能录音。
但是你的模式是非录音模式,也就是说你的是播放音乐的模式,那就需要在录音结束后设置为
AVAudioSessionCategoryAmbient。
针对这个情况,你可以这样处理,在录音前,首先调用cocoa2dx的
pauseBackgroundMusic,然后执行环信的录音。
录音结束后,首先调用一下
[ setCategory:AVAudioSessionCategoryRecord error:nil];
然后执行cocoa2dx的 resumeBackgroundMusic
这样应该就可以解决你的问题。
> forum.php?mod=redirect&goto=findpost&pid=1254&ptid=651
好吧,我真机看了下,确实出现了。
这里讲一下具体原因和处理方式。
在录音的时候,肯定会把


谢谢,这个方法把背景音乐的问题给我搞定了,麻烦其他段音频再帮我看看。

要回复问题请先登录注册