摘要
修改跳转偏移量。
声明
#include <zircon/syscalls.h>
zx_status_t zx_stream_seek(zx_handle_t handle,
zx_stream_seek_origin_t whence,
int64_t offset,
zx_off_t* out_seek);
说明
zx_stream_seek()
将音频流的定位偏移量设置为相对于以下值的偏移量:offset
whence。
如果产生的跳转偏移量为负数或超过最大值
可表示的 zx_off_t
,zx_stream_seek()
会返回 ZX_ERR_INVALID_ARGS
。
产生的定位偏移量可能会超出音频流的末尾。设置
此类跳转偏移量不会导致 zx_stream_seek()
返回错误,
尝试在该跳转偏移处读取或写入数据可能会产生错误。
适用场景
ZX_STREAM_SEEK_ORIGIN_START
设置相对于起始点的跳转偏移量
直播
ZX_STREAM_SEEK_ORIGIN_CURRENT
设置相对于当前项的跳转偏移量
音频流的跳转偏移量。
ZX_STREAM_SEEK_ORIGIN_END
设置相对于
信息流(由信息流的内容大小定义)。
权限
handle 的类型必须为 ZX_OBJ_TYPE_STREAM
,且具有 ZX_RIGHT_WRITE
或 ZX_RIGHT_WRITE
。
返回值
zx_stream_seek()
会在成功时返回 ZX_OK
,并写入生成的搜寻次数
相对于流开始时的偏移量,到 out_offset(如果为非 NULL)。
错误
ZX_ERR_BAD_HANDLE
handle 不是有效的句柄。
ZX_ERR_WRONG_TYPE
handle 不是流句柄。
ZX_ERR_ACCESS_DENIED
句柄不包含 ZX_RIGHT_READ
或
右侧 ZX_RIGHT_WRITE
。
ZX_ERR_INVALID_ARGS
whence 是无效的 zx_stream_seek_origin_t
或
因此搜寻结果将为负数,或超出可表示的最大值
zx_off_t
。