2012-04-03 1 views
21

AirPlay에 내재 지연/대기 시간이 있음을 알고 있지만 (현재 가상의) iPhone 앱이 지연 시간을 감지 할 수있는 방법이 있는지 궁금합니다. 그렇다면 대기 시간 값은 얼마나 정확합니까? 나는 앱이 단순히 AirPlay 대기 시간을 최소화하는 것이 아니라 자체 AirPlay 대기 시간을 "알"수 있는지에 대해 더 궁금하다.AirPlay 대기 시간 감지

+3

blip을 보내고 마이크를 통해 되돌아 오는 소리를 들어보십시오. – trapper

+0

프리 스피커 대기 시간을 찾고 있습니다. 신호가 네트워크를 통해 이동하는 데 걸리는 시간. 스피커와 음향 전달을 기다리면 추가 레이턴시가 추가되어 관심이없는 것 같습니다. 감사합니다! –

답변

4

짧은 대답은 : 아니오, Apple은이를 수행 할 방법을 제공하지 않습니다. App Store에서 앱을 승인해야한다고 가정하면 운이 좋지 않을 것입니다. 탈옥 한 기기에서 앱을 실행할 수 있다면 더 많은 것을 할 수있는 문서화되지 않은 API를 검색 할 수 있습니다.

애플 앱 스토어에서 앱을 사용할 수있게하려면 네트워크에서 수행 할 수있는 대부분의 작업이 "도달 가능성"샘플 앱에 설명되어 있습니다.

Bonjour를 사용하여 호스트를 식별하고 (예제 코드 https://developer.apple.com/library/ios/#samplecode/BonjourWeb/Introduction/Intro.html 참조) 호스트를 핑 (ping)하는 것이 좋은 추측을 얻는 유일한 방법입니다. 그러나

:

당신이 추측하거나 사용자가 연결되는 질문, 또는 어쩌면 평균에 응시해야합니다 이상 1 개 에어 플레이 스테이션이있는 경우
  • .
  • 이 장치에 핑에 응답하지 않을 수 있습니다 모든 (애플 TV와 공항 익스프레스 모두 핑 (ping)에 응답, 제 3 자 장치에 대해 확실하지.)
  • 핑 오디오의 실제 대기 시간을 반영하지 않을 수 있습니다
대신이에 너무 많은 시간을 허비

, 당신은 AirPlay를위한 오디오를 준비하고 AirPlay를 위해 응용 프로그램을 풍요롭게 애플의 지침을 따라야합니다 : http://developer.apple.com/library/ios/#documentation/AudioVideo/Conceptual/AirPlayGuide/PreparingYourMediaforAirPlay/PreparingYourMediaforAirPlay.html#//apple_ref/doc/uid/TP40011045-CH4-SW1

희망이 도움이! :)

34

대기 시간은 네트워크 지터가 아닌 오히려 소스 장치 (iPhone)에 의해 결정됩니다. 짧은

긴 이야기 : 그것은 항상 애플 기기와 정확히 2 초 (밀리 초에 이르기까지)의

  • .
  • 공개 API를 사용하여이를 조정할 방법이 없습니다.

오디오 출력 대기 시간은 매우 정확해야 여러 출력을 동기화하여 재생할 수 있습니다. 에어 플레이의 구현에 대한

일부 설명 :

  • 프로토콜은 여러 RTSP로 시작하는 명령. 이 핸드 셰이크가 진행되는 동안 소스는 재생이 시작되는 시간 인 지연 시간 인 rtpTime을 전송합니다. 일반적인 값은 88200 = 2s x 44100Hz입니다.
  • AirPlay 장치는 네트워크의 대기 시간을 줄이기 위해 소스의 NTP와 시계를 동기화 할 수 있습니다.
  • 재생하는 동안 원본에서 오디오 대기 시간을 조정하고 모든 장치가 여전히 동기화되어 있는지 확인하기 위해 주기적으로 SYNC 패킷을 보냅니다.

맞춤 구현을 사용하는 경우 대기 시간을 변경할 수는 있지만 일반적으로 Apple은이를 거부합니다.

자세한 내용은 writeup을 확인하십시오. unofficial protocol documentation을 읽을 수도 있습니다. outputLatency의 문서에 따르면

+0

Laurent 링크를 이용해 주셔서 감사합니다. 나는이 대기 시간 문제로 어려움을 겪어 왔으며 2 초의 댓글은 많은 부분을 차지합니다. Airplay를 통한 AVPlayer에는 대기 시간이 없지만 다른 제한 사항이있는 것으로 보입니다. – amergin

+0

환상적인 참고 자료! 더 많은 제어로 훨씬 더 멋진 기능을 둘러싼 불필요한 수수께끼의 일부를 제거합니다. –

0

당신은 -[AVAudioSession outputLatency]으로 아이폰 OS의 현재 하드웨어 오디오 대기 시간을 조회 할 수 있습니다,

:

2 초 지연을 초래할 수있는 오디오 콘텐츠에 대한 AirPlay를 지원 장치를 사용. 이 게임 내용의 지연을 확인하십시오.

그리고, 출력 장치의 스위칭 예 때 제 경험에 의하면,이 값은 변경 :

  • 스피커 ~ 10ms의
  • 블루투스 ~ 100 + MS
  • 에어 플레이 : 2S