gpt4 book ai didi

iOS 如何在 Sprite Kit 游戏中创建音频淡入/淡出效果?

转载 作者:可可西里 更新时间:2023-11-01 17:07:47 25 4
gpt4 key购买 nike

我对如何在我的 Sprite Kit 游戏中管理背景音乐以实现淡入/淡出很感兴趣。

我注意到 Sprite Kit 有一个内置的声音播放器,但它似乎对非常短的效果更有用,比如“击中”的声音:

[self runAction:[SKAction playSoundFileNamed:@"music.mp3" waitForCompletion:NO]];

似乎没有办法阻止这种声音。

我正在使用 Kobold Kit,它带有可以播放声音的 OALSimpleAudio 库:

    [[OALSimpleAudio sharedInstance] preloadEffect:@"die.wav"];
[[OALSimpleAudio sharedInstance] playEffect:@"die.wav"];

[[OALSimpleAudio sharedInstance]preloadBg:@"battle.mp3"];
[[OALSimpleAudio sharedInstance] playBg:@"battle.mp3" loop:YES];

OALSimpleAudio 中有一个bgVolume 属性,但没有真正的淡入淡出。

应该尝试编写我自己的淡入/淡出代码如果有什么东西可以用来控制通用音乐播放器随时间推移的音量,例如 OALSimpleAudio

最佳答案

您也可以只使用 AVAudioPlayer 中的构建或者当然可以根据您的播放器调整功能:

//play background sound
NSError *error;
NSURL * backgroundMusicURL = [[NSBundle mainBundle] URLForResource:@"SpaceLife" withExtension:@"mp3"];
self.backgroundMusicPlayer = [[AVAudioPlayer alloc] initWithContentsOfURL:backgroundMusicURL error:&error];
self.backgroundMusicPlayer.numberOfLoops = -1;
[self.backgroundMusicPlayer prepareToPlay];
[self.backgroundMusicPlayer play];

然后你从这个 post 添加函数:

- (void)doVolumeFade
{
if (self.backgroundMusicPlayer.volume > 0.1) {
self.backgroundMusicPlayer.volume = self.player.volume - 0.1;
[self performSelector:@selector(doVolumeFade) withObject:nil afterDelay:0.1];
} else {
// Stop and get the sound ready for playing again
[self.backgroundMusicPlayer stop];
self.backgroundMusicPlayer.currentTime = 0;
[self.backgroundMusicPlayer prepareToPlay];
self.backgroundMusicPlayer.volume = 1.0;
}
}

关于iOS 如何在 Sprite Kit 游戏中创建音频淡入/淡出效果?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20888961/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com