根据 LearnCocos2D 留下的评论,我研究了 ObjectAL。对于那些不熟悉的人ObjectAL
,它被设计成一个简单直观的OpenAL
界面AVAudioPlayer
。您可以在此处下载并找到有关它的更多信息...
http://kstenerud.github.io/ObjectAL-for-iPhone/index.html
对于我的音频剪辑,我使用了 3 到 5 秒长的 .caf 电机声音音频文件。 ObjectAL
让我可以连续循环并改变音频文件的音高。通过改变螺距,我可以模拟不同速度的电机。
以下是代码示例...
两个成员变量,或者您可以将它们设置为属性...
ALBuffer *_buffer;
ALSource *_source;
初始化马达音效的方法...
- (void)initializeSound
{
// We'll let OALSimpleAudio deal with the device and context.
// Since we're not going to use it for playing effects, don't give it any sources.
[OALSimpleAudio sharedInstance].reservedSources = 0;
_source = [ALSource source];
_buffer = [[OpenALManager sharedInstance] bufferFromFile:@"EngineSound.caf"];
_source.pitch = 0.30; // Start at low pitch for engine idle.
[_source play:_buffer loop:YES];
}
在我SKScene
的更新方法中,我根据速度调整音高。
- (void)update:(CFTimeInterval)currentTime
{
CGFloat enginePitch;
// Code to calculate desired enginePitch value based on vehicle speed.
_source.pitch = enginePitch;
}
由于 中的一个所谓的错误,我在关闭应用程序时SpriteKit
确实遇到了错误问题。gpus_ReturnNotPermittedKillClient
EXC_BAD_ACCESS
我在这里找到了修复...
https://stackoverflow.com/a/19283721/3148272