use*_*375 0 cocos2d-iphone ios
我是Cocos2d框架的新手,我在主菜单场景中帮助弄清楚如何在循环中播放.wav文件.另外,我想要一些关于如何在两个精灵碰撞时发出声音的帮助.
谢谢
在v3之前,您将在使用之前预先加载音频文件.例如,预加载背景音乐(它准备播放但不加载整个内容,它是流式):
[[SimpleAudioEngine sharedEngine] preloadBackgroundMusic:@"sound.aifc"];
Run Code Online (Sandbox Code Playgroud)
要玩它你会打电话:
[[SimpleAudioEngine sharedEngine] playBackgroundMusic:"sound.aifc"];
Run Code Online (Sandbox Code Playgroud)
要阻止它,你会打电话:
[[SimpleAudioEngine sharedEngine] stopBackgroundMusic];
Run Code Online (Sandbox Code Playgroud)
对于声音效果(比如当两个物体碰撞时播放声音),你可以通过首先预加载(它确实加载和缓存整个事物)来做同样的事情:
[[SimpleAudioEngine sharedEngine] preloadEffect:@"sound.caf"];
Run Code Online (Sandbox Code Playgroud)
然后在需要时播放特定实例:
unsigned int audioId = [[SimpleAudioEngine sharedEngine] playEffect:@"sound.caf"
pitch:1.0f
pan:0.0f
gain:1.0f];
Run Code Online (Sandbox Code Playgroud)
并停止您将调用的特定实例:
[[SimpleAudioEngine sharedEngine] stopEffect:audioId];
Run Code Online (Sandbox Code Playgroud)
对于效果,您必须在完成后卸载音频(您不必使用背景音乐):
[[SimpleAudioEngine sharedEngine] unloadEffect:@"sound.caf"];
Run Code Online (Sandbox Code Playgroud)
如果您使用的是v3,则可以使用以下方法预加载,播放和停止背景音乐:
// Preload...
[[OALSimpleAudio sharedInstance] preloadBg:@"sound.aifc"];
// Play (and loop the music)...
[[OALSimpleAudio sharedInstance] playBgWithLoop:YES];
// To stop the music...
[[OALSimpleAudio sharedInstance] stopBg];
Run Code Online (Sandbox Code Playgroud)
对于v3中的音频效果,您可以使用以下方法预加载声音效果:
ALBuffer* soundBuffer = [[OALSimpleAudio sharedInstance] preloadEffect:@"sound.caf"];
Run Code Online (Sandbox Code Playgroud)
或者您可以异步执行:
__block ALBuffer* soundBuffer;
[[OALSimpleAudio sharedInstance] preloadEffect:@"sound.caf"
reduceToMono:NO
completionBlock:^(ALBuffer* buffer)
{
soundBuffer = buffer;
}];
Run Code Online (Sandbox Code Playgroud)
或者您可以通过以下方式加载音频文件数组:
NSArray* soundFiles = @[@"sound1.caf", @"sound2.caf", @"sound3.caf"];
[[OALSimpleAudio sharedInstance] preloadEffects:soundFiles
reduceToMono:NO
progressBlock:^(NSUInteger progress,
NSUInteger successCount,
NSUInteger total)
{
if (successCount == total)
{
CCLOG(@"Sound files loaded!");
}
}];
Run Code Online (Sandbox Code Playgroud)
要播放音效:
[[OALSimpleAudio sharedInstance] playEffect:@"sound.caf" loop:NO];
Run Code Online (Sandbox Code Playgroud)
或者,如果您有音频缓冲区,则播放声音效果的另一种方法:
[[OALSimpleAudio sharedInstance] playBuffer:soundBuffer
volume:1.0f
pitch:1.0f
pan:0.0f
loop:NO];
Run Code Online (Sandbox Code Playgroud)
要卸载所有已加载和缓存的效果:
[[OALSimpleAudio sharedInstance] unloadAllEffects];
Run Code Online (Sandbox Code Playgroud)
希望这可以帮助.
| 归档时间: |
|
| 查看次数: |
2732 次 |
| 最近记录: |