2026년부터 트렁크 안정 개발 모델과 일치하고 생태계의 플랫폼 안정성을 보장하기 위해 2분기와 4분기에 AOSP에 소스 코드를 게시합니다. AOSP를 빌드하고 기여하려면 aosp-main 대신 android-latest-release를 사용하는 것이 좋습니다. android-latest-release 매니페스트 브랜치는 항상 AOSP에 푸시된 최신 버전을 참조합니다. 자세한 내용은 AOSP 변경사항을 참고하세요.
Google uses AI technology to translate content into your preferred language. AI translations can contain errors.
컬렉션을 사용해 정리하기
내 환경설정을 기준으로 콘텐츠를 저장하고 분류하세요.
audio_stream_out 구조체 참조
#include <
audio.h
>
|
|
|
struct
audio_stream
|
일반적인
|
|
|
|
uint32_t(*
|
get_latency
)(const struct
audio_stream_out
*stream)
|
|
|
|
int(*
|
set_volume
)(struct
audio_stream_out
*stream, float left, float right)
|
|
|
|
ssize_t(*
|
write
)(struct
audio_stream_out
*stream, const void *buffer, size_t bytes)
|
|
|
|
int(*
|
get_render_position
)(const struct
audio_stream_out
*stream, uint32_t *dsp_frames)
|
|
|
|
int(*
|
get_next_write_timestamp
)(const struct
audio_stream_out
*stream, int64_t *timestamp)
|
|
|
|
int(*
|
set_callback
)(struct
audio_stream_out
*stream,
stream_callback_t
callback, void *cookie)
|
|
|
|
int(*
|
pause
)(struct
audio_stream_out
*stream)
|
|
|
|
int(*
|
resume
)(struct
audio_stream_out
*stream)
|
|
|
|
int(*
|
drain
)(struct
audio_stream_out
*stream,
audio_drain_type_t
type)
|
|
|
|
int(*
|
flush
)(struct
audio_stream_out
*stream)
|
|
|
|
int(*
|
get_presentation_position
)(const struct
audio_stream_out
*stream, uint64_t *frames, struct timespec *timestamp)
|
|
|
audio_stream_out
은 오디오 출력 하드웨어의 추상화 인터페이스입니다.
오디오 출력 하드웨어 드라이버의 다양한 속성에 관한 정보를 제공합니다.
audio.h
FILE의
276
행에 정의되어 있습니다.
드라이버/하드웨어에서 버퍼링된 데이터가 재생될 때 알림을 요청합니다. 비차단 모드를 사용 설정하기 위해 이전에
set_callback()
이 호출된 경우
drain()
이 차단되어서는 안 되며 대신 빠르게 반환되어야 하고 콜백을 통해 배출 완료가 알림됩니다.
set_callback()
이 호출되지 않은 경우
drain()
은 완료될 때까지 차단해야 합니다. type==AUDIO_DRAIN_ALL인 경우 이전에 작성된 모든 데이터가 재생되면 배수가 완료됩니다. type==AUDIO_DRAIN_EARLY_NOTIFY인 경우 프레임워크가 갭리스 트랙 전환을 실행할 시간을 확보할 수 있도록 현재 트랙의 모든 데이터가 재생되기 직전에 배수가 완료됩니다.
stop() 및
flush()
호출 시 drain이 즉시 반환되어야 합니다.
오프로드된 재생을 위해서는 이 함수를 구현해야 합니다.
audio.h
FILE의
372
라인에 정의되어 있습니다.
오디오 드라이버에 대기열에 추가된 데이터를 플러시하도록 알립니다.
flush()
를 호출하기 전에 스트림이 이미 일시중지되어 있어야 합니다.
오프로드된 재생을 위해서는 이 함수를 구현해야 합니다.
audio.h
FILE의
380
라인에 정의되어 있습니다.
오디오 하드웨어 드라이버의 예상 지연 시간을 밀리초 단위로 반환합니다.
audio.h
FILE의
287
라인에 정의되어 있습니다.
|
int(* get_next_write_timestamp)(const struct
audio_stream_out
*stream, int64_t *timestamp)
|
오디오 드라이버에 다음 쓰기가 표시될 로컬 시간을 가져옵니다. 단위는 마이크로초이며, 이때 에포크는 로컬 오디오 HAL에 의해 결정됩니다.
audio.h
FILE의
324
라인에 정의되어 있습니다.
|
int(* get_presentation_position)(const struct
audio_stream_out
*stream, uint64_t *frames, struct timespec *timestamp)
|
외부 관찰자에게 표시된 최근 오디오 프레임 수를 반환합니다. 여기에는 작성되었지만 아직 파이프라인에 있는 프레임은 제외됩니다. 출력이 대기 모드로 전환되더라도 수는 0으로 재설정되지 않습니다. 또한 이 프레젠테이션 개수의 CLOCK_MONOTONIC 값을 반환합니다. 반환된 개수는 '최근'이어야 하지만 반드시 가장 최근 값일 필요는 없습니다. 하지만 연결된 시간은 반환된 개수와 일치해야 합니다. 예: N+M 프레임이 표시되었다고 가정해 보겠습니다. 여기서 M은 '작은' 숫자입니다. 그러면 N+M 대신 N을 반환할 수 있으며 타임스탬프는 N+M이 아닌 N에 해당해야 합니다. '최근' 및 '작은'이라는 용어가 정의되어 있지 않습니다. 구현 품질을 반영합니다.
3.0 이상만 지원됩니다.
audio.h
FILE의
398
라인에 정의되어 있습니다.
|
int(* get_render_position)(const struct
audio_stream_out
*stream, uint32_t *dsp_frames)
|
오디오 드라이버에 재생을 중지하도록 알림을 보내지만 대기열에 추가된 버퍼는 하드웨어에 유지됩니다. 일시중지/재개를 구현하는 데 유용합니다. 지원되지 않는 경우 빈 구현이지만 지연 시간이 상당한 하드웨어의 경우 구현해야 합니다. 일시중지 상태에서도 오디오 하드웨어는 계속 전원을 사용할 수 있습니다. 사용자는 시간 초과 후 suspend를 호출할 수 있습니다.
오프로드된 재생을 위해서는 이 함수를 구현해야 합니다.
audio.h
FILE의
345
라인에 정의가 있습니다.
일시중지 후 재생을 재개하도록 오디오 드라이버에 알립니다. 일치하는 일시중지를 사용하지 않고 호출하면 오류가 반환됩니다.
오프로드된 재생을 위해서는 이 함수를 구현해야 합니다.
audio.h
FILE의
353
라인에 정의가 있습니다.
비차단 쓰기 및 배수 완료 알림을 위한 콜백 함수를 설정합니다. 이 함수를 호출하면 향후 모든
write()
및
drain()
이 비차단 방식이어야 하며 콜백을 사용하여 완료 신호를 보내야 함을 의미합니다.
audio.h
FILE의
333
라인에 정의되어 있습니다.
오디오 믹싱이 하드웨어에서 이루어지는 상황에서 이 메서드를 사용합니다. 이 메서드는 하드웨어와의 직접적인 인터페이스 역할을 하므로 프레임워크를 통해 볼륨을 설정하는 대신 볼륨을 직접 설정할 수 있습니다. 이 메서드는 여러 PCM 출력 또는 MP3 또는 AAC와 같은 하드웨어 가속 코덱을 생성할 수 있습니다.
audio.h
FILE의
296
라인에 정의되어 있습니다.
|
ssize_t(* write)(struct
audio_stream_out
*stream, const void *buffer, size_t bytes)
|
드라이버에 오디오 버퍼를 씁니다. 쓴 바이트 수 또는 음수 status_t를 반환합니다. 오류가 발생하기 전에 하나 이상의 프레임이 성공적으로 쓰여진 경우 드라이버는 성공적인 (짧은) 바이트 수를 반환한 다음 후속 호출에서 오류를 반환하는 것이 좋습니다.
이전에
set_callback()
을 호출하여 비차단 모드를 사용 설정한 경우
write()
가 차단되지 않습니다. 현재 드라이버/하드웨어 버퍼에 맞는 바이트 수만 쓴 다음 이 바이트 수를 반환해야 합니다. 이 값이 요청된 쓰기 크기보다 작으면 드라이버/하드웨어 버퍼에 더 많은 공간이 확보될 때 콜백 함수를 호출해야 합니다.
audio.h
FILE의
311
라인에 정의되어 있습니다.
이 구조체에 관한 문서는 다음 파일에서 생성되었습니다.
-
hardware/libhardware/include/hardware/
audio.h
이 페이지에 나와 있는 콘텐츠와 코드 샘플에는 콘텐츠 라이선스에서 설명하는 라이선스가 적용됩니다. 자바 및 OpenJDK는 Oracle 및 Oracle 계열사의 상표 또는 등록 상표입니다.
최종 업데이트: 2025-07-27(UTC)
[null,null,["최종 업데이트: 2025-07-27(UTC)"],[],[]]