2012-11-15 3 views
0

특정 재생 시간에 특정 대화 형 "슬라이드"를 표시하려는 iPhone 앱에서 프리젠 테이션 오디오 트랙을 재생할 수 있습니다. 비디오를 사용할 수없는 이유는 슬라이드가 대화 형 (사진뿐 아니라)이기 때문입니다.코드 콜백을 오디오 트랙의 재생 시간과 동기화하는 방법은 무엇입니까?

개발자는 최근에 오디오 트랙 재생을 시작한 다음 타이머에 의해 트리거 된 콘텐츠를 신뢰할 수 없다고 말했습니다. 트랙이 길수록 미디어 재생이 실제 재생되는 길이가 다르기 때문에 타이머가 더 많이 작동합니다.

"재생 시간 X : Y에 도착했습니다"또는 재생할 때마다 콜백하는 콜백이 있습니까?

+0

@estobbart가이 돈을 받고 있습니다. AudioUnit의 콜백과 동기화해야합니다. 별도의 스레드에서 NSTimer를 유지하면 절대로 안정적으로 작동하지 않습니다. –

답변

2

AudioUnit에는 AURenderCallbackStruct에서 전달할 수있는 콜백 속성이 있습니다. 해당 콜백에는 타임 스탬프가 있습니다.

OSStatus YourAURenderCallack (
    void      *inRefCon, 
    AudioUnitRenderActionFlags *ioActionFlags, 
    const AudioTimeStamp  *inTimeStamp, 
    UInt32      inBusNumber, 
    UInt32      inNumberFrames, 
    AudioBufferList    *ioData 
); 
+0

고맙습니다. @estobbart - 이와 같은 콜백을 사용하여 파일을 재생하는 실제 예제를 알고 계십니까? –

+0

이것은 꽤 상세한 내용입니다. http://atastypixel.com/blog/using-remoteio-audio-unit/ – estobbart