Android 용 대기 시간이 짧은 오디오 앱에 OpenSL을 사용하고 있습니다. 지금까지 내가 달성 한 가장 낮은 대기 시간은 삼성 갤럭시 S5 (터치 사운드, 탭 사운드 및 앱 사운드의 녹음으로 측정)에서 200ms입니다. 내부 앱 로직을 개선하여 160ms로 줄일 수 있다고 생각합니다. 지금은 터치를받는 앱과 그 오디오에 대한 콜백을받는 사이에 최대 40ms의 지연이 있습니다. 나는 이것이 오디오가 없을 때 빈 버퍼를 끊임없이 대기시키고 있기 때문이라고 생각한다. 이 나쁜 습관인가? 어떤 이유로 든 오디오가있을 때만 대기열 접근 방식을 시도하지만 오디오 인공물을 얻습니다.Android : OpenSL 최하위 대기 시간
어쨌든 내 안드로이드 장치에서 터치에서 오디오 출력까지 openSL을 사용하여 달성 가능한 최저 대기 시간은 얼마입니까? (디바이스마다 다르다는 것을 알고 있지만, 저 지연이 가장 좋은 디바이스가 무엇인지, 가장 낮은 대기 시간의 가치는 무엇인지, 최근 디바이스의 평균 가능한 최소값은 무엇인지 궁금해하고 있습니다.)
Android: sound API (deterministic, low latency)
년 전에 약에서 위의 링크는 180ms 범위 주위에 있음을 주장한다. 아직도 OpenSL에서 가장 낮은 수준입니까? 추천 답변에 따르면 안드로이드 용 Music Synthesizer는 30ms 미만의 "총 출력 대기 시간"을 얻습니다. 하지만 삼성 갤럭시 S5에서 돌릴 때 200ms의 대기 시간이 들립니다. "총 출력 대기 시간"이란 무엇입니까? 내가 놓친 게 있니?
대기 시간을 어떻게 더 줄일 수 있습니까?
도움 주셔서 감사합니다.
편집 : NEON 또는 SSE 명령어를 제외한 Low-latency audio playback on Android을 제외한 모든 처리를 수행하고 있지만 처리 시간이 15 % 미만이므로 문제가 될 수 없습니다. 스테레오 사운드에 대해 2 * PROPERTY_OUTPUT_FRAMES_PER_BUFFER 반바지로 버퍼 대기 중입니다. 너무 높습니까?
이 질문은 명백하게 옳고 그름이 확실한 정답이 아니라 제한된 장치 세트를 사용한 개인적인 경험을 바탕으로 일화 답을 이끌어 낼 것입니다. 따라서 이것은 토론 포럼이 아니기 때문에 실제로 StackOverflow에 적합하지 않습니다. 어쨌든, 당신이 소리를 조금 높게 인용하는 숫자. 동일한 측정 방법을 사용하여 1 년 반 전에 레이턴시 테스트를 실행했을 때 XPeria Z에서 100ms 미만의 시간을 얻었습니다. – Michael
openSL을 사용 하시겠습니까? 활성화해야하는 빠른 모드가 있습니까? 대기열에있는 버퍼에서 shortbufferedqueueplayer (PROPERTY_OUTPUT_FRAMES_PER_BUFFER * 2) 단락을 사용하고 플레이어와 오디오 데이터에 대해 PROPERTY_OUTPUT_SAMPLE_RATE를 사용하고 있습니다. 저는 스테레오 사운드를 사용하고 있습니다. 그 이유는 * 2의 반바지 때문입니다. 내가 수행 할 수없는 유일한 생각은 NEON 또는 SSE 명령어를 사용하는 것이지만 처리 시간은 재생 시간의 15 % 미만이며 지연은 여전히 높습니다. –