playback.ended event
当输出正常停止、设备丢失、权限撤销或发生不可恢复错误时发送一次。
Event payload
{
output,
reason: "stopped" | "device-lost" | "permission-revoked" | "background-policy" | "error"
}
Examples
host.events.on('playback.ended', ({ output, reason }) => {
if (output !== stream.output) return;
mixer.detach();
if (reason !== 'stopped') showPlaybackFailure(reason);
});
事件送达时句柄已经失效;只能清理本地状态,不能再次写入。
Delivery rules
- 应用声明本事件时,每个成功打开的输出句柄恰好发送一次
ended。 stop(..., "drain")只在已接受帧播放完后发送;immediate可以丢弃缓冲后发送。- 终止后不得再发送
ready。
Requirements
- 事件声明:
playback.ended - 来源:audio-output 句柄终止
- 信任档位:继承
playback.open的 yellow