在我用Swift编写的SpriteKit
iOS游戏中,播放非常短的声音(约0.5秒)会产生打ic(如滞后)。在其他问题中,我读到我应该prepareToPlay()
发出声音,就像以前那样。
我什至使用变量(soundReady
)在播放之前检查声音是否准备就绪。每当播放完(audioPlayerDidFinishPlaying()
)时,我也会重新准备声音。以下是代码的相关部分:
class GameScene: SKScene, AVAudioPlayerDelegate {
var splashSound = NSURL()
var audioPlayer = AVAudioPlayer()
var soundReady = false
override func didMoveToView(view: SKView) {
let path = NSBundle.mainBundle().pathForResource("plopSound", ofType: "m4a")
splashSound = NSURL(fileURLWithPath: path)
audioPlayer = AVAudioPlayer(contentsOfURL: splashSound, error: nil)
audioPlayer.delegate = self
soundReady = audioPlayer.prepareToPlay()
}
func playSound(){
if(soundReady){
audioPlayer.play()
soundReady = false
}
}
func audioPlayerDidFinishPlaying(player: AVAudioPlayer!, successfully flag: Bool){
//Prepare to play after Sound finished playing
soundReady = audioPlayer.prepareToPlay()
}
}
我不知道我在哪里犯了错误。我感觉我已经尝试了所有方法(包括但不限于:仅准备一次,在播放后立即准备,不使用变量,而只是prepareToPlay())。
附加信息:
我遇到了同样的问题,并在backgroundQueue中播放了声音。
let qualityOfServiceClass = QOS_CLASS_BACKGROUND
let backgroundQueue = dispatch_get_global_queue(qualityOfServiceClass, 0)
dispatch_async(backgroundQueue, {
audioPlayer.play()
})
在我用Swift编程的SpriteKitiOS游戏中播放一个非常短的声音(约0.5秒)会产生一个小问题(比如延迟)。在其他问题中,我读到我应该声音,我做到了。 我甚至使用了一个变量(
我有一些(C 14)代码如下所示: 有时会抛出一个异常,这很好,因为如果是这样,我不希望垃圾映射中的值。 但是一开始我在循环中写了这个,这不起作用: 更准确地说,即使抛出异常,也会创建(并分配一个空集)。 这不是我所期望的:我希望它们以同样的方式运行。 这里有没有我误解的C原则?
我有一个由多个线程操作的ArrayList,由于ArrayList没有同步,所以无法工作。按照教授的指示,我把列表换成了向量。向量是同步的,但我抛出了与同步相关的异常。 为什么会发生这种情况,我如何避免代码中的并发异常?我不想只是玩玩,直到有东西起作用,我想做最好的事情。谢谢! 例外情况: 代码:
你好Stack overflow社区, 我的提示是:**“您将进行错误检查,以确保输入的小时在[0,23]范围内。继续询问用户,直到用户输入有效范围内的时间。 当我的程序有正确的整数输入(任何整数输入)时,它将正常工作。然而,如果我输入一个非整数,那么所有的东西都卡在一个无限循环中。 我做错了什么?
我不确定我是否正确理解http-keep-alive,在我看来,它应该重用tcp连接,而不是构建一个新的连接。然而,我发现了一些非常奇怪的事情,似乎很难预料http keep-alive的行为。 服务器:NodeJS&Express^4.16.3,我使用Wireshark分析结果 情况1: null 客户端 null 情况2: null 结果:建立了另外5个tcp连接(在图片中只有4个,因为屏幕截
我以前非常成功地使用了JMS的Spring集成,但是我们现在使用RabbitMQ/AMQP,并且在错误处理方面有一些问题。 我有一个int-amqp: inbinding-Channel适配器,带有一个设置为接收任何异常的错误通道,这里有一个错误转换器类检查失败的消息的原因异常。然后根据异常的类型:- > 抑制异常并转换为JSON对象,该对象可以作为解释故障的业务回复转到AMQP出站通道适配器。在