v0.1首个正式支持的版本化规范查看版本范围

capture.readAudio()

把麦克风采样写入 ByteSink。v0.1 使用交错、little-endian f32 PCM。

Syntax

const result = await host.capture.readAudio(microphone, output, options?);

Parameters

参数 类型 说明
microphone microphone-stream handle requestMic() 返回的活动句柄
output ByteSink 容量为 channels × 4 的正整数倍
options CallOptions 可选取消信号

Return value

{
  written: u32,
  sampleRate: u32,
  channels: 1 | 2,
  format: "f32le",
  frames: u32,
  sequence: u64,
  droppedFrames: u32
}

一次成功读取 1..min(output.capacity / (channels × 4), maxFramesPerRead) 个完整帧,并满足 written === frames × channels × 4sequence 是返回块首个帧的零基绝对序号;droppedFrames 报告本块之前因有界缓冲溢出而新丢弃的帧数。容量不是正整数个完整帧时,在消费任何音频前以 sink-too-small 失败。

Examples

const output = new Uint8Array(16 * 1024);
const audio = await host.capture.readAudio(stream.microphone, output);
analyzer.push(output.subarray(0, audio.written), audio.sampleRate, audio.channels);

Errors

特有错误:stale-handleresource-deniedsink-too-smalldevice-unavailablebusycancelledlimit-exceeded

Requirements

  • 授权:handle-derived,需要 microphone-stream 的 read 权限
  • 可取消:是;取消不关闭句柄
  • 信任档位:yellow

See also

capture.requestMic()playback.write()

Host API 版本与分层概览Host API v0.1版本非正式提议提议canvas API呈现canvas.getInfo()方法canvas.draw()方法canvas.present()方法canvas.measureText()方法canvas.frame event事件canvas.resize event事件asset API呈现asset.read()方法asset.loadFont()方法playback API呈现playback.open()方法playback.write()方法playback.stop()方法playback.ready event事件playback.ended event事件input API输入input.focus()方法input.pointer event事件input.key event事件input.wheel event事件input.focusChange event事件ime API输入ime.openSession()方法ime.updateState()方法ime.updateGeometry()方法ime.closeSession()方法ime.textUpdate event事件ime.composition event事件ime.formatUpdate event事件ime.characterBoundsRequest event事件ime.ended event事件capture API输入capture.requestCamera()方法capture.requestMic()方法capture.frame()方法capture.readAudio()方法capture.stop()方法capture.ended event事件store API数据store.get()方法store.put()方法store.delete()方法store.list()方法store.deletePrefix()方法clipboard API数据clipboard.readText()方法clipboard.writeText()方法env API平台集成env.snapshot()方法env.change event事件开始调用 Host API指南构建交互式绘图应用指南构建自绘文本编辑器指南管理媒体采集与播放指南组织本地数据与同步指南