CAShow()在控制台中没有输出

3

在Swift 4.0项目中尝试测试AUGraph的状态。

var audioGraph: AUGraph? = nil

func createAUGraph() {

    NewAUGraph(&self.audioGraph)

    CAShow(UnsafeMutablePointer<AUGraph>(self.audioGraph!))
    CAShow(UnsafeMutablePointer(self.audioGraph!)) }

然而,我并没有看到任何输出到控制台上。

我已经逐步调试了代码,AUGraph 和 AUNodes 似乎已经成功创建和实例化了...

这是 AUGraph 不存在的迹象吗...还是我错误地使用了这个 AudioToolBox 方法?


1
我进行了快速检查。我也没有得到输出。self.audioGraph确实存在,至少它不是nil。否则感叹号会使应用程序崩溃。 - florieger
谢谢...我没有意识到AUGraph在2018年将被弃用。也许这与此有关。 - cit
3个回答

2

是的,你说得对。没有输出。在Swift 4中,它似乎已经被静音了。

import AudioToolbox

var audioGraph: AUGraph? = nil
var acd: UnsafePointer<AudioComponentDescription>? = nil
var outNode: UnsafeMutablePointer<AUNode>? = nil

func createAUGraph() {
    AUGraphAddNode(audioGraph!, acd!, outNode!)
    NewAUGraph(UnsafeMutablePointer<AUGraph>(audioGraph!))
    CAShow(UnsafeMutablePointer<AUGraph>(audioGraph!))
    CAShow(UnsafeMutablePointer(audioGraph!))
}

createAUGraph()

2
如果图形存在,为什么CAShow()没有任何输出?以前有一些示例显示结果。我怀疑因为AUGraph将在2018年被弃用,输出会被静音。 - cit
假设它已被静音,并且根据WWDC演讲中的说法,它肯定会在iOS中被弃用。 - Andy Jazz
我已经尝试了很多次添加和删除节点,但是没有任何输出。 - Andy Jazz

2

CAShow将信息输出到os_log。

可在Console.app中查看日志。 有关更多信息,请参见此SO答案:https://dev59.com/41YN5IYBdhLWcg3w7cFn#48229691

或者,您可以使用另一种方法CAShowFile(void * inObject,FILE * inFile)并使用stdout作为文件指针直接记录到Xcode控制台。

在Swift中,应该这样写:

CAShowFile(UnsafeMutableRawPointer(graph), stdout)


0

或者您可以使用另一种方法CAShowFile(void *inObject, FILE *inFile),并将stdout用作文件指针,直接记录到Xcode控制台


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接