首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >为iOS SpriteKit游戏播放马达声音效果..。AVAudioPlayer vs SKAction vs?

为iOS SpriteKit游戏播放马达声音效果..。AVAudioPlayer vs SKAction vs?
EN

Stack Overflow用户
提问于 2014-05-08 03:38:57
回答 2查看 1.7K关注 0票数 5

我正在开发一个使用SpriteKit的驾驶游戏,并且在引擎声音效果方面有问题。

我想要两种不同的引擎声音。一个用于当油门按钮被按下时,另一个用于当油门按钮没有被按下时。游戏进行时,两种声音中的一种将持续播放。

什么是最好的方法?我的声音文件应该非常短(0.10秒或更短)并被循环,还是应该相当长并且只是打开和关闭?我应该使用SKAction来播放声音或AVAudioPlayer或其他什么吗?我试过使用AVAudioPlayer,但是每次我停下来玩玩家(打开或关闭节气门)时,游戏的帧率就会暂时下降。任何帮助都是非常感谢的!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-05-13 16:20:58

基于LearnCocos2D留下的评论,我查看了ObjectAL。对于那些不熟悉ObjectAL的人来说,它被设计成一个简单直观的OpenALAVAudioPlayer接口。你可以在这里下载并找到更多关于它的信息..。

http://kstenerud.github.io/ObjectAL-for-iPhone/index.html

对于我的音频剪辑,我使用了3到5秒长的电机声音的.caf音频文件。ObjectAL允许我连续循环并改变音频文件的音高。通过改变螺距,我可以模拟不同速度的电机。

下面是代码的示例..。

两个成员变量或者可以将它们设置为属性..。

代码语言:javascript
运行
复制
ALBuffer *_buffer;
ALSource *_source;

方法初始化电机的声音效果。

代码语言:javascript
运行
复制
- (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更新方法中,我会根据速度来调整音高。

代码语言:javascript
运行
复制
- (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

票数 6
EN

Stack Overflow用户

发布于 2014-05-08 07:41:54

我建议使用AVAudioPlayer。您需要在属性中拥有它,而不是每次想要播放某个内容时都创建它。SKAction在某种程度上是不好的,您不能停止或取消它(即使通过删除操作)。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23532310

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档