如何等待当前音频播放完毕才能播放下一个音频?
我正在使用cocos2d。如何等待当前音频播放完毕才能播放下一个音频?我无法使用 SimpleAudioEngine 做到这一点。
I'm working with cocos2d. How to wait finish current audio for playing next audio? I can't make it with SimpleAudioEngine.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
http://www.cocos2d-iphone.org/api-ref /0.99.0/interface_c_d_sound_engine.html
使用 CDAudioEngine。它有你想要的方法。顺便说一句,SimpleAudioEngine正在使用CDAudioEngine来播放声音。
编辑
当您的按钮第一次被点击时 - 播放声音并将声音的间隔保存到您的一些 lass 变量中。然后在下一次单击中使用此变量来确定“足够的间隔”。或者只是使用一些最大值。
编辑2
如果您查看 SimpleAudioEngine 实现,您会注意到它使用 CDSoundEngine 来播放声音。下面是 SimpleAudioEngine 的 init 方法:
因此我们也可以访问 CDSoundEngine:
当在 SimpleAudioEngine 上调用 playEffect 方法时(单击按钮时)保存返回的声音 id。
现在我们可以使用 CDSoundEngine 获取间隔:
这就是答案!
顺便说一下,如果你知道声音 ID,你也可以使用 CDSoundEngine 停止声音。
来自 CocosDenshion.h
我正在使用 cocos2D 0.99.5
实现:
http://www.cocos2d-iphone.org/api-ref/0.99.0/interface_c_d_sound_engine.html
use CDAudioEngine. It have the method you want. By the way SimpleAudioEngine is using CDAudioEngine to play sounds.
EDIT
When your button is clicked first time - play the sound and save the sound's interval to some of your lass variable. Then in next click use this variable to determine the "enough interval". Or just use some maximum.
EDIT 2
If you'll take a look at SimpleAudioEngine implementation you will notice that it's using CDSoundEngine to play sounds. Here is the init method of SimpleAudioEngine:
So we can also access to CDSoundEngine:
When calling playEffect method on SimpleAudioEngine (when your button is clicked) save the returned sound id.
Now we can get the interval using our CDSoundEngine:
That's the answer!
By the way you can also stop a sound with CDSoundEngine if you know the sound id.
From CocosDenshion.h
I'm using cocos2D 0.99.5
implementation:
// 播放声音
Aluint soundID = [[SimpleAudioEngine共享引擎] playEffect:@"sound.mp3"];
// 要停止声音,您需要在播放时使用相同的 soundID
[[SimpleAudioEngine共享引擎] stopEffect:soundID];
// to Play the sound
Aluint soundID = [[SimpleAudioEngine sharedEngine] playEffect:@"sound.mp3"];
// to stop the sound you need to use the same soundID when you play it
[[SimpleAudioEngine sharedEngine] stopEffect:soundID];