ios - SKAudioNode 是否有等效的 isPlaying()?
问题描述
在确定 SKAction.playSoundFileNamed 不仅有错误和泄漏,而且在 IAP 中断期间(不是 OK,Apple),我正在为我们的游戏尝试其他音效选项。我们正在尝试使用 SKAudioNodes,但问题是我们有重叠的音效。我们想使用一个系统,其中我们有一个 SKAudioNodes 队列,它们具有相同的效果:例如,audioNode1、audioNode2、audioNode3,都带有声音“fxmatch”,如果 audioNode1.isPlaying(),那么我们将继续排队到 audioNode2,然后是 audioNode3,等等。我们已经为 AVAudioPlayer 提供了类似的语法,我们在其中检查 isPlaying()。SKAudioNodes 是否有一些等效的方法?
解决方案
if let playerNode = audioNode.avAudioNode as? AVAudioPlayerNode{
print(playerNode.isPlaying)
}
或者
extension SKAudioNode
{
var isPlaying : Bool { return (avAudioNode as? AVAudioPlayerNode)?.isPlaying ?? false }
}
...
print(audioNode.isPlaying)
推荐阅读
- prolog - 生成列表代替“假”
- c# - 从用户控件更改表单控件
- node.js - 使用 node.js 将简单文本转换为 json
- django - Django:为什么在使用 varchar 引用 ForeignKey 时会出现 ValueError?
- flutter - 以编程方式在 Flutter 中的图像顶部绘制圆圈
- python - Numpy 矩阵求逆对大于 18 的阶数给出错误结果
- django - django_filters,如何根据关联模型进行查询?
- github - 解压缩错误:未找到中央目录结尾签名。此文件不是 zipfile,或者它构成多部分存档的一个磁盘
- angular - 在加载任何组件之前从标头获取 Auth Token
- python - 使用请求 python 列出所有加载了网页的媒体和文档文件