【发布时间】:2017-12-25 22:15:39
【问题描述】:
我一直在开发一个使用 AudioQueueNewOutput 的 Objective-C 应用程序。我有其他声音库的经验,所以回调机制很熟悉。但是,我遇到的一个问题是inUserData 指针。当您调用 AudioQueueStop 时,即使立即设置为 true,回调也可以再次运行。这使得在调用 AudioQueueStop 的同时释放用户指针中的任何内容是不合适的。
这就是kAudioQueueProperty_IsRunning的目的吗?该侦听器的回调是否保证不会再次调用队列回调并且用户指针可以安全释放?
如果这不是正确的机制,那么我很难想到可能是什么。在调用AudioQueueStop 之后,回调可能会尝试同步它认为还剩下多少缓冲区,但这似乎很脆弱。我想避免像这么多秒后解除分配或内存泄漏这样的黑客攻击。
【问题讨论】:
标签: objective-c callback core-audio