- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试连接到 Spotify 流并使用自定义合成器修改输出。使用很棒的 AudioKit 会很棒.为了改变输出 Spotify 流,我必须实现这个 method ,这让我可以访问 spotify 的 AUGraph。然后我可以添加将连接到 spotify 图表的输入和输出的 AUNode(对 here 的描述非常好)。
我知道 AudioKit 在内部使用 CoreAudio,但我还没有找到任何方法来访问 AKNode 的底层 AUNode(如果有的话)。或者是否有另一种方法如何将 AudioKit AKNode 连接到现有的 AUGraph。
现在我看到 AudioKit 使用 AVAudioEngine(而不是 EZAudio 中使用的 AUGraph),我可以轻松获得输出和输入节点。所以真正的问题是我是否可以将 AVAudioNode 连接到 AUGraph 中,或者是否有其他方法可以将 AVAudioNode 转换为 AUNode。
编辑:我试图实现 Dmitrii像这样简单设置的建议,尝试修改播放速度:
var engine: AVAudioEngine = AVAudioEngine()
var playback = AVAudioUnitVarispeed()
func connect(outputBus sourceOutputBusNumber: UInt32, ofNode sourceNode: AUNode, toInputBus destinationInputBusNumber: UInt32, ofNode destinationNode: AUNode, inGraph graph: AUGraph, error: NSError?) {
playback.rate = 0.5
engine.attach(playback)
// Connect
engine.connect(playback, to: engine.mainMixerNode, format: nil)
try! engine.start()
var playbackCD = playback.auAudioUnit.componentDescription
var avPlaybackNode = AUNode()
try! AUGraphAddNode(graph, &playbackCD, &avPlaybackNode).checkError(message: "Failed to add playback node")
//Conect source to the mixer input
AUGraphConnectNodeInput(graph, sourceNode, sourceOutputBusNumber, avPlaybackNode, 0)
//Connect mixer output to the device output
AUGraphConnectNodeInput(graph, avPlaybackNode, 0, destinationNode, destinationInputBusNumber)
}
但对音频输出没有任何影响。尽管如此,它仍然存在。
在结合 AUGraph 和 AVAudioEngine 时,我应该遵循一些特定的生命周期吗?还是我忘记了一些重要的事情?
编辑 2:所以我没有按照建议添加节点,我什至不确定它是否可行。我更幸运地将节点与 kAudioUnitProperty_MakeConnection 属性连接起来:
AUGraphNodeInfo(graph, destinationNode, nil, &destinationUnit)
var connection = AudioUnitConnection(sourceAudioUnit: destinationUnit, sourceOutputNumber: 0, destInputNumber: 0)
try! AudioUnitSetProperty(engine.outputNode.audioUnit!, kAudioUnitProperty_MakeConnection, kAudioUnitScope_Input, 0, &connection, UInt32(MemoryLayout<AudioUnitConnection>.size)).checkError(message: "Failed to make connection")
try! engine.start()
这会将 AVAudioEngine 的输出节点与 Spotify 的输出连接起来。但是,如果我添加任何中间节点,它就无法播放任何内容。这就像 AVAudioNodes 根本不会连接:
engine.attach(varispeed)
engine.connect(varispeed, to: engine.mainMixerNode, format: nil)
var connection = AudioUnitConnection(sourceAudioUnit: destinationUnit, sourceOutputNumber: 0, destInputNumber: 0)
try! AudioUnitSetProperty(varispeed.audioUnit, kAudioUnitProperty_MakeConnection, kAudioUnitScope_Input, 0, &connection, UInt32(MemoryLayout<AudioUnitConnection>.size)).checkError(message: "Failed to make connection")
try! engine.start()
知道为什么会这样吗?我希望引擎输出单元连接到主混音器,主混音器连接到变速,然后连接到 spotify 的输出。任何帮助将不胜感激。
非常感谢
托马斯
最佳答案
AVAudioNode具有实例属性 AUAudioUnit .此外,您可以获得 AudioComponentDescription
您可以将您的节点添加到图形中并获取 AUNode:
AUGraphAddNode(graph,
yourAudioComponentDescription,
outAUNode);
编辑:首先,附加节点,连接它们,然后启动引擎。在 CAShow(graph)
之后显示您的日志以检查您的图表。
关于spotify - AudioKit 访问底层 CoreAudio 节点(Spotify 集成),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46794807/
关闭。这个问题是opinion-based 。目前不接受答案。 想要改进这个问题吗?更新问题,以便 editing this post 可以用事实和引文来回答它。 . 已关闭 4 年前。 Improv
PowerShell Web Access 允许您通过 Web 浏览器运行 PowerShell cmdlet。它显示了一个基于 Web 的控制台窗口。 有没有办法运行 cmdlet 而无需在控制台窗
我尝试在无需用户登录的情况下访问 Sharepoint 文件。 我可以通过以下任一方式获取访问 token 方法一: var client = new RestClient("https://logi
我目前正在尝试通过 Chrome 扩展程序访问 Google 服务。我的理解是,对于 JS 应用程序,Google 首选的身份验证机制是 OAuth。我的应用目前已成功通过 OAuth 向服务进行身份
假设我有纯抽象类 IHandler 和派生自它的类: class IHandler { public: virtual int process_input(char input) = 0; };
我有一个带有 ThymeLeaf 和 Dojo 的 Spring 应用程序,这给我带来了问题。当我从我的 HTML 文件中引用 CSS 文件时,它们在 Firebug 中显示为中止。但是,当我通过在地
这个问题已经有答案了: JavaScript property access: dot notation vs. brackets? (17 个回答) 已关闭 6 年前。 为什么这不起作用? func
我想将所有流量重定向到 https,只有 robot.txt 应该可以通过 http 访问。 是否可以为 robot.txt 文件创建异常(exception)? 我的 .htaccess 文件: R
我遇到了 LinkedIn OAuth2: "Unable to verify access token" 中描述的相同问题;但是,那里描述的解决方案并不能解决我的问题。 我能够成功请求访问 toke
问题 我有一个暴露给 *:8080 的 Docker 服务容器. 我无法通过 localhost:8080 访问容器. Chrome /curl无限期挂断。 但是如果我使用任何其他本地IP,我就可以访
我正在使用 Google 的 Oauth 2.0 来获取用户的 access_token,但我不知道如何将它与 imaplib 一起使用来访问收件箱。 最佳答案 下面是带有 oauth 2.0 的 I
我正在做 docker 入门指南:https://docs.docker.com/get-started/part3/#recap-and-cheat-sheet-optional docker-co
我正在尝试使用静态 IP 在 AKS 上创建一个 Web 应用程序,自然找到了一个带有 Nginx ingress controller in Azure's documentation 的解决方案。
这是我在名为 foo.js 的文件中的代码。 console.log('module.exports:', module.exports) console.log('module.id:', modu
我试图理解访问键。我读过https://docs.aws.amazon.com/general/latest/gr/aws-sec-cred-types.html#access-keys-and-se
我正在使用 MGTwitterEngine"将 twitter 集成到我的应用程序中。它在 iOS 4.2 上运行良好。当我尝试从任何 iOS 5 设备访问 twitter 时,我遇到了身份验证 to
我试图理解访问键。我读过https://docs.aws.amazon.com/general/latest/gr/aws-sec-cred-types.html#access-keys-and-se
我正在使用以下 API 列出我的 Facebook 好友。 https://graph.facebook.com/me/friends?access_token= ??? 我想知道访问 token 过
401 Unauthorized - Show headers - { "error": { "errors": [ { "domain": "global", "reas
我已经将我的 django 应用程序部署到 heroku 并使用 Amazon s3 存储桶存储静态文件,我发现从 s3 存储桶到 heroku 获取数据没有问题。但是,当我测试查看内容存储位置时,除
我是一名优秀的程序员,十分优秀!