gpt4 book ai didi

swift - 场景转换的声音,不会口吃

转载 作者:可可西里 更新时间:2023-11-01 02:12:14 24 4
gpt4 key购买 nike

在 SpriteKit 中(对于那些不熟悉它的人)有一种加载和卸载场景的方法,以及它们之间的过渡(视觉)。

我正在尝试在场景之间播放声音,当它们转换时...不会卡顿。

到目前为止,我尝试过的所有方法要么没有声音,要么声音断断续续,即使使用声音管理器也是如此:

import AVFoundation
import SpriteKit

open class SoundManager {

static let soundStart = SKAction.playSoundFileNamed("ActionBeep_AP1.7", waitForCompletion: true)


static var coinSound = NSURL(fileURLWithPath:Bundle.main.path(forResource: "ActionBeep_AP1.7", ofType: "wav")!)
static var audioPlayer = AVAudioPlayer()
open static func playCoinSound(){
guard let soundToPlay = try? AVAudioPlayer(contentsOf: coinSound as URL) else {
fatalError("Failed to initialize the audio player with asset: \(coinSound)")
}
soundToPlay.prepareToPlay()
self.audioPlayer = soundToPlay
self.audioPlayer.play()
}


}

有人成功地让场景转换声音运行流畅吗?我意识到在场景转换期间会发生很多事情,这可能对声音引擎没有帮助。但是认为必须有一种方法可以在场景转换期间播放清晰的声音。

是的,我尝试过使用 .caf 和 .mp3 以及 .wav 文件,它们都具有不同的“压缩”和原始状态。我认为问题在于我播放声音的方式,而不是文件类型。

最佳答案

正如crashoverride777所说,加载声音管理器时需要更改。您可以在 didMoveToView() 函数中设置一个线程来最小化加载时间:

DispatchQueue.global(qos: .userInitiated).async {
// Load your sound stuff
}

现在,您可以随时加载声音文件,无延迟。

关于swift - 场景转换的声音,不会口吃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40724292/

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