zx_stream_seek

摘要

修改跳转偏移量。

声明

#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_tzx_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_WRITEZX_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

另请参阅