首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何访问distanceAttenuationParameters的SKAudioNode

如何访问distanceAttenuationParameters的SKAudioNode
EN

Stack Overflow用户
提问于 2017-12-24 16:34:40
回答 1查看 97关注 0票数 1

我在我的场景中有一个SKAudioNode,但是来自它的音频并没有像我想的那样脱离范围(我的场景非常大,而且当这个节点离我很远的时候,它仍然是清晰的可听到的。当它在近距离时,减小它的体积会使它变得太精确--我需要改变随距离下降的体积)。

从文档中可以看出,我需要调整的参数是distanceAttenuationParameters in AVAudioEnvironmentNode

当我查看SKScene时,我可以看到它有一个audioEngine AVAudioEngine属性,而这个属性又公开了一个mainMixerMode AVAudioMixer属性。但在所有这些地方,我都找不到AVAudioEnvironmentNode的句柄。

那么,如何访问使节点的音频在大场景中正确运行所需的参数呢?

EN

回答 1

Stack Overflow用户

发布于 2022-03-28 11:03:24

您可以在AVAudioEnvironmentNodeaudioEngineattachedNodes数组中找到它,这里是SKScene的一个扩展,它添加了一个计算属性来直接从任何SKScene访问它。

代码语言:javascript
复制
import Foundation
import SpriteKit
import AVFoundation

extension SKScene {
    
    var audioEnvironmentNode : AVAudioEnvironmentNode? {
        audioEngine.attachedNodes.first(where: {audioNode in
            audioNode is AVAudioEnvironmentNode
        }) as? AVAudioEnvironmentNode
    }
    
}

示例:

代码语言:javascript
复制
if let environmetNode = scene.audioEnvironmentNode {
    environmetNode.distanceAttenuationParameters.distanceAttenuationModel = .linear
    environmetNode.distanceAttenuationParameters.referenceDistance = 400
    environmetNode.distanceAttenuationParameters.maximumDistance = 1500
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47962318

复制
相关文章

相似问题

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