playback.write()
向已打开的输出提交交错、little-endian f32 PCM 帧,并返回可观察的背压结果。
Syntax
const result = await host.playback.write(output, samples);
Parameters
| 参数 | 类型 | 说明 |
|---|---|---|
output |
audio-output handle | open() 返回的当前会话句柄 |
samples |
ByteSource |
字节数为 channels × 4 整数倍的 PCM |
采样值必须有限。有限的越界值可以钳制到 [-1, 1];NaN/Infinity 必须拒绝。
Return value
{ acceptedFrames: u32, queuedFrames: u32, droppedFrames: u32 }
Examples
const pcm = mixer.render(1024);
const result = await host.playback.write(
stream.output,
new Uint8Array(pcm.buffer, pcm.byteOffset, pcm.byteLength),
);
if (result.acceptedFrames < 1024) mixer.retainTail(result.acceptedFrames);
不要忙循环重试;等待 playback.ready。
Errors
invalid-format、stale-handle、limit-exceeded、device-unavailable。
Requirements
- 能力:
host:playback.write - 活跃的 audio-output 句柄
- 信任档位:yellow