实时音频线程问题(iOS)

时间:2014-02-21 10:42:28

标签: objective-c pthreads core-audio nsthread circular-buffer

我有以下设置:

Core Audio Callback -> Circular Buffer -> libLAME -> Circular Buffer -> libShout

这一切正常,直到我开始做任何密集的工作,此时执行编码的线程(libLAME)和执行流式传输的线程(libShout)被限制并且事情开始很快下降(基本上服务器得到音频每2-5秒而不是每200毫秒或更少,就像它应该的那样,并且流变得乱码了。

我尝试了以下内容:

  1. 在一个线程上进行编码和流式传输
  2. 在自己的线程上编码和流式传输
  3. 将线程的优先级设置为高
  4. 将线程设置为实时线程(除了事实上其他所有线路都受到过多限制之外,似乎在大多数情况下修复它)
  5. 我几乎使用了libLAME和libShout的股票标准示例代码。 即将它们设置为音频格式和服务器,然后循环,同时数据在缓冲区中可用。

    我不明白为什么当CPU使用率达到最大值80%并且线程在等待另一个线程时没有阻塞时,线程会受到限制。

    对此的任何帮助将不胜感激。

0 个答案:

没有答案