使用集合让一切井井有条
根据您的偏好保存内容并对其进行分类。
audio_stream_out 结构参考
#include < audio.h >
|
结构音频流 | 常见的 |
|
uint32_t(* | get_latency )(const struct audio_stream_out *stream) |
|
整数(* | set_volume )(struct audio_stream_out *stream, 向左浮动, 向右浮动) |
|
大小_t(* | write )(struct audio_stream_out *stream, const void *buffer, size_t bytes) |
|
整数(* | 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) |
|
整数(* | resume )(struct audio_stream_out *stream) |
|
整数(* | drain )(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()来启用非阻塞模式,则drain()不能阻塞,而是应该快速返回,并且通过回调通知排放完成。如果set_callback()没有被调用,则drain()必须阻塞直到完成。如果 type==AUDIO_DRAIN_ALL,则在播放完所有先前写入的数据后,排水完成。如果 type==AUDIO_DRAIN_EARLY_NOTIFY,则在当前音轨的所有数据播放完之前不久完成排放,以便框架有时间执行无间隙音轨切换。
Drain 必须在 stop() 和flush()调用时立即返回
卸载播放必须执行此功能。
在文件audio.h的第372行定义。
int(* get_next_write_timestamp)(const struct audio_stream_out *stream, int64_t *timestamp) |
获取下一次写入音频驱动程序的本地时间。单位是微秒,其中 epoch 由本地音频 HAL 决定。
在文件audio.h的第324行定义。
int(* get_presentation_position)(const struct audio_stream_out *stream, uint64_t *frames, struct timespec *timestamp) |
返回呈现给外部观察者的音频帧数的最新计数。这不包括已写入但仍在流水线中的帧。当输出进入待机状态时,计数不会重置为零。还返回截至此演示计数的 CLOCK_MONOTONIC 的值。返回的计数应该是“最近的”,但不需要是最近的可能值。但是,关联的时间应该对应于返回的任何计数。示例:假设已呈现 N+M 帧,其中 M 是“小”数。那么允许返回N而不是N+M,并且时间戳应该对应N而不是N+M。术语“最近”和“小”没有定义。它们反映了实施的质量。
仅限 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行定义。
在硬件中完成音频混合的情况下使用此方法。此方法用作与硬件的直接接口,允许您通过框架直接设置音量。此方法可能会产生多个 PCM 输出或硬件加速编解码器,例如 MP3 或 AAC。
在文件audio.h的第296行定义。
ssize_t(* write)(struct audio_stream_out *stream, const void *buffer, size_t bytes) |
将音频缓冲区写入驱动程序。返回写入的字节数,或负的 status_t。如果在错误之前至少成功写入一帧,则建议驱动程序返回该成功(短)字节计数,然后在后续调用中返回错误。
如果先前已调用set_callback()以启用非阻塞模式,则不允许write()阻塞。它必须只写入当前适合驱动程序/硬件缓冲区的字节数,然后返回此字节数。如果这小于请求的写入大小,则必须在驱动程序/硬件缓冲区中有更多可用空间时调用回调函数。
在文件audio.h的第311行定义。
此结构的文档是从以下文件生成的:
,
audio_stream_out 结构参考
#include < audio.h >
|
结构音频流 | 常见的 |
|
uint32_t(* | get_latency )(const struct audio_stream_out *stream) |
|
整数(* | set_volume )(struct audio_stream_out *stream, 向左浮动, 向右浮动) |
|
大小_t(* | write )(struct audio_stream_out *stream, const void *buffer, size_t bytes) |
|
整数(* | 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) |
|
整数(* | resume )(struct audio_stream_out *stream) |
|
整数(* | drain )(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()来启用非阻塞模式,则drain()不能阻塞,而是应该快速返回,并且通过回调通知排放完成。如果set_callback()没有被调用,则drain()必须阻塞直到完成。如果 type==AUDIO_DRAIN_ALL,则在播放完所有先前写入的数据后,排水完成。如果 type==AUDIO_DRAIN_EARLY_NOTIFY,则在当前音轨的所有数据播放完之前不久完成排放,以便框架有时间执行无间隙音轨切换。
Drain 必须在 stop() 和flush()调用时立即返回
卸载播放必须执行此功能。
在文件audio.h的第372行定义。
int(* get_next_write_timestamp)(const struct audio_stream_out *stream, int64_t *timestamp) |
获取下一次写入音频驱动程序的本地时间。单位是微秒,其中 epoch 由本地音频 HAL 决定。
在文件audio.h的第324行定义。
int(* get_presentation_position)(const struct audio_stream_out *stream, uint64_t *frames, struct timespec *timestamp) |
返回呈现给外部观察者的音频帧数的最新计数。这不包括已写入但仍在流水线中的帧。当输出进入待机状态时,计数不会重置为零。还返回截至此演示计数的 CLOCK_MONOTONIC 的值。返回的计数应该是“最近的”,但不需要是最近的可能值。但是,关联的时间应该对应于返回的任何计数。示例:假设已呈现 N+M 帧,其中 M 是“小”数。那么允许返回N而不是N+M,并且时间戳应该对应N而不是N+M。术语“最近”和“小”没有定义。它们反映了实施的质量。
仅限 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行定义。
在硬件中完成音频混合的情况下使用此方法。此方法用作与硬件的直接接口,允许您通过框架直接设置音量。此方法可能会产生多个 PCM 输出或硬件加速编解码器,例如 MP3 或 AAC。
在文件audio.h的第296行定义。
ssize_t(* write)(struct audio_stream_out *stream, const void *buffer, size_t bytes) |
将音频缓冲区写入驱动程序。返回写入的字节数,或负的 status_t。如果在错误之前至少成功写入一帧,则建议驱动程序返回该成功(短)字节计数,然后在后续调用中返回错误。
如果先前已调用set_callback()以启用非阻塞模式,则不允许write()阻塞。它必须只写入当前适合驱动程序/硬件缓冲区的字节数,然后返回此字节数。如果这小于请求的写入大小,则必须在驱动程序/硬件缓冲区中有更多可用空间时调用回调函数。
在文件audio.h的第311行定义。
此结构的文档是从以下文件生成的:
本页面上的内容和代码示例受内容许可部分所述许可的限制。Java 和 OpenJDK 是 Oracle 和/或其关联公司的注册商标。
最后更新时间 (UTC):2022-08-30。
[{
"type": "thumb-down",
"id": "missingTheInformationINeed",
"label":"没有我需要的信息"
},{
"type": "thumb-down",
"id": "tooComplicatedTooManySteps",
"label":"太复杂/步骤太多"
},{
"type": "thumb-down",
"id": "outOfDate",
"label":"内容需要更新"
},{
"type": "thumb-down",
"id": "translationIssue",
"label":"翻译问题"
},{
"type": "thumb-down",
"id": "samplesCodeIssue",
"label":"示例/代码问题"
},{
"type": "thumb-down",
"id": "otherDown",
"label":"其他"
}]
[{
"type": "thumb-up",
"id": "easyToUnderstand",
"label":"易于理解"
},{
"type": "thumb-up",
"id": "solvedMyProblem",
"label":"解决了我的问题"
},{
"type": "thumb-up",
"id": "otherUp",
"label":"其他"
}]