컬렉션을 사용해 정리하기
내 환경설정을 기준으로 콘텐츠를 저장하고 분류하세요.
audio_stream_out 구조체 참조
#include < audio.h >
|
구조체 audio_stream | 흔한 |
|
uint32_t(* | get_latency )(const struct audio_stream_out *stream) |
|
정수(* | set_volume )(struct audio_stream_out *stream, 왼쪽 부동, 오른쪽 부동) |
|
ssize_t(* | 쓰기 )(struct audio_stream_out *stream, const void *buffer, size_t 바이트) |
|
정수(* | get_render_position )(const struct audio_stream_out *stream, uint32_t *dsp_frames) |
|
정수(* | get_next_write_timestamp )(const struct audio_stream_out *stream, int64_t *timestamp) |
|
정수(* | set_callback )(struct audio_stream_out *stream, stream_callback_t 콜백, void *cookie) |
|
정수(* | 일시 중지 )(struct audio_stream_out *stream) |
|
정수(* | 재개 )(struct audio_stream_out *stream) |
|
정수(* | 배수 )(struct audio_stream_out *stream, audio_drain_type_t 유형) |
|
정수(* | 플러시 )(struct audio_stream_out *stream) |
|
정수(* | get_presentation_position )(const struct audio_stream_out *stream, uint64_t *frames, struct timespec *timestamp) |
|
audio_stream_out은 오디오 출력 하드웨어에 대한 추상화 인터페이스입니다.
오디오 출력 하드웨어 드라이버의 다양한 속성에 대한 정보를 제공합니다.
audio.h 파일의 276 번째 줄에 정의되어 있습니다.
드라이버/하드웨어에 의해 버퍼링된 데이터가 재생되면 알림을 요청합니다. 비차단 모드를 활성화하기 위해 이전에 set_callback()을 호출한 경우, 배수()는 차단되어서는 안 되며, 대신 신속하게 반환되어야 하며 배수 완료는 콜백을 통해 통지됩니다. set_callback()이 호출되지 않은 경우 Drain()은 완료될 때까지 차단되어야 합니다. type==AUDIO_DRAIN_ALL인 경우 이전에 기록된 모든 데이터가 재생되면 배수가 완료됩니다. type==AUDIO_DRAIN_EARLY_NOTIFY인 경우 프레임워크가 간격 없는 트랙 전환을 수행할 시간을 허용하기 위해 현재 트랙의 모든 데이터가 재생되기 직전에 드레인이 완료됩니다.
stop() 및 플러시() 호출 시 배수가 즉시 반환되어야 합니다.
오프로드된 재생에는 이 기능의 구현이 필수입니다.
audio.h 파일의 372 번째 줄에 정의되어 있습니다.
대기 중인 데이터를 플러시하도록 오디오 드라이버에 알립니다. 플러시() 를 호출하기 전에 스트림이 이미 일시 중지되어 있어야 합니다.
오프로드된 재생에는 이 기능의 구현이 필수입니다.
audio.h 파일의 380 번째 줄에 정의되어 있습니다.
오디오 하드웨어 드라이버 예상 대기 시간을 밀리초 단위로 반환합니다.
audio.h 파일의 287 번째 줄에 정의되어 있습니다.
int(* get_next_write_timestamp)(const struct audio_stream_out *stream, int64_t *timestamp) |
오디오 드라이버에 대한 다음 쓰기가 표시될 현지 시간을 가져옵니다. 단위는 마이크로초이며, 에포크는 로컬 오디오 HAL에 의해 결정됩니다.
audio.h 파일의 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 파일의 398 번째 줄에 정의되어 있습니다.
int(* get_render_position)(const struct audio_stream_out *stream, uint32_t *dsp_frames) |
재생을 중지하도록 오디오 드라이버에 알립니다. 그러나 대기 중인 버퍼는 하드웨어에 의해 유지됩니다. 일시정지/재개 구현에 유용합니다. 그러나 지원되지 않는 경우 빈 구현은 적지 않은 대기 시간이 있는 하드웨어에 대해 구현되어야 합니다. 일시 정지 상태에서도 오디오 하드웨어는 여전히 전력을 사용하고 있을 수 있습니다. 사용자는 시간 초과 후 일시 중단 호출을 고려할 수 있습니다.
오프로드된 재생에는 이 기능의 구현이 필수입니다.
audio.h 파일의 345 번째 줄에 정의되어 있습니다.
일시 정지 후 재생을 재개하도록 오디오 드라이버에 알립니다. 일치하는 일시정지 없이 호출되면 오류를 반환합니다.
오프로드된 재생에는 이 기능의 구현이 필수입니다.
audio.h 파일의 353 번째 줄에 정의되어 있습니다.
비차단 쓰기 및 배수 완료를 알리는 콜백 함수를 설정합니다. 이 함수를 호출한다는 것은 앞으로의 모든 write() 및 Drain()이 비차단이어야 하고 신호 완료를 위해 콜백을 사용해야 함을 의미합니다.
audio.h 파일의 333 번째 줄에 정의되어 있습니다.
하드웨어에서 오디오 믹싱이 수행되는 상황에서 이 방법을 사용하십시오. 이 방법은 하드웨어와의 직접적인 인터페이스 역할을 하므로 프레임워크를 통해 볼륨을 직접 설정할 수 있습니다. 이 방법을 사용하면 여러 PCM 출력이나 MP3 또는 AAC와 같은 하드웨어 가속 코덱을 생성할 수 있습니다.
audio.h 파일의 296 번째 줄에 정의되어 있습니다.
드라이버에 오디오 버퍼를 씁니다. 쓴 바이트 수 또는 음수 status_t를 반환합니다. 오류가 발생하기 전에 하나 이상의 프레임이 성공적으로 기록된 경우 드라이버가 해당 성공적인(짧은) 바이트 수를 반환한 다음 후속 호출에서 오류를 반환하는 것이 좋습니다.
비차단 모드를 활성화하기 위해 이전에 set_callback()을 호출한 경우 write()는 차단할 수 없습니다. 현재 드라이버/하드웨어 버퍼에 맞는 바이트 수만 쓴 다음 이 바이트 수를 반환해야 합니다. 요청된 쓰기 크기보다 작으면 드라이버/하드웨어 버퍼에 더 많은 공간을 사용할 수 있을 때 콜백 함수를 호출해야 합니다.
audio.h 파일의 311 번째 줄에 정의되어 있습니다.
이 구조체에 대한 문서는 다음 파일에서 생성되었습니다.
- hardware/libhardware/include/hardware/ audio.h
이 페이지에 나와 있는 콘텐츠와 코드 샘플에는 콘텐츠 라이선스에서 설명하는 라이선스가 적용됩니다. 자바 및 OpenJDK는 Oracle 및 Oracle 계열사의 상표 또는 등록 상표입니다.
최종 업데이트: 2023-12-01(UTC)
[[["이해하기 쉬움","easyToUnderstand","thumb-up"],["문제가 해결됨","solvedMyProblem","thumb-up"],["기타","otherUp","thumb-up"]],[["필요한 정보가 없음","missingTheInformationINeed","thumb-down"],["너무 복잡함/단계 수가 너무 많음","tooComplicatedTooManySteps","thumb-down"],["오래됨","outOfDate","thumb-down"],["번역 문제","translationIssue","thumb-down"],["샘플/코드 문제","samplesCodeIssue","thumb-down"],["기타","otherDown","thumb-down"]],["최종 업데이트: 2023-12-01(UTC)"],[],[]]