2013-07-10 4 views
4

iOS 앱에서 AUGraph를 두 개 사용합니다. 하나는 오디오 녹음 용이고 다른 하나는 오디오 재생 용입니다. 한 번에 하나씩 만 사용합니다. AUGraph 인스턴스를 사용할 때마다 처음부터 AUGraph 인스턴스를 다시 만들면이 작업을 올바르게 수행 할 수 있습니다.iOS에서 AudioUnit 그래프의 재사용 가능

녹음과 재생 사이를 전환 할 때마다 새로운 AUGraphs를 만들고 초기화하는 대신 이러한 AUGraphs를 재사용하려고합니다.

나는 다음과 같은 단계를 수행 할 때, 나는 오류를 다음 번에 얻을 수 있기 때문에이 I/O 장치에서 마이크 데이터를 가져하려고,이 작업을 수행하는 데 문제가 :

  • 작성 기록 그래프
  • 그래프를
  • 녹화 개시 그래프
  • 정지 기록 그래프
  • 작성 재생 그래프
  • INI 기록 초기화 재생 그래프를 tialize
  • 시작 재생 그래프
  • 정지 재생 그래프
  • 시작 기록 그래프

그리고를 다시 할 때 다음 오류를 발생시키는 호출, -50의 리턴 코드 (이 사항이 잘 작동

  • AUGraph) :

    OSStatus status = AudioUnitRender(
        remoteIoUnit, 
        ioActionFlags, 
        inTimeStamp, 
        CB_remoteIoUnitInputElement, 
        inNumberFrames, 
        ioData 
    ); 
    

    AUGraphs를 일반적으로 재사용 할 수 있습니까? 그렇다면 어떻게해야합니까?

  • +0

    레크리에이션 접근법으로 되돌 렸습니다. 이 해결 방법이 나를 위해 일하긴하지만 누군가가 AUGraph를 재사용하는 방법을 말해 줄 수 있다면 알려 주시기 바랍니다. 나는 호기심에서도 관심이 있습니다. –

    +0

    발견 : 약간의 관심이 있습니다. http://lists.apple.com/archives/coreaudio-api/2012/Oct/msg00113.html – Woodstock

    답변

    2

    질문에 설명 된 것과 똑같은 방식으로 AU 그래프를 재사용 할 수 있습니다.

    왜 나를 위해 작동하지 않는 문제는 내 두 AUGraph 인스턴스간에 간섭/덮어 쓰기가 발생하는 버그가 있다는 것입니다. 우연히 만이 버그를 발견했습니다. 내가 고쳤을 때, AUGraphs는 의도 한대로 작동한다.

    두 개의 AUGraph 인스턴스를 완전히 분리하여 유지하는 경우 원하는만큼 많은 AUGraph 인스턴스를 사용하고 다시 사용할 수 있습니다. 나는 그들이 동시에 사용될 수 있는지 테스트하지 않았다.