import SRTC, { LocalMicTrack, MicPresets } from '@seastart/srtc-web-sdk';
const srtc = new SRTC();
// 假设已加入频道且 localMicTrack 已发布
let localMicTrack: LocalMicTrack;
// 创建并发布麦克风轨道
localMicTrack = srtc.createLocalMicTrack(MicPresets.music);
await localMicTrack.startCapture();
await srtc.publishLocalTrack(localMicTrack);
// ── 临时静音(不停止采集,不断开推流)────────────────────────────────────────
await srtc.disableLocalTrack(localMicTrack);
// 远端会收到 ChannelEventType.TRACK_MUTED 事件
// ── 取消静音 ──────────────────────────────────────────────────────────────────
await srtc.enableLocalTrack(localMicTrack);
// 远端会收到 ChannelEventType.TRACK_UNMUTED 事件
```typescript
> **注意:** `disableLocalTrack` 后麦克风采集仍在进行(指示灯仍亮),只是不往频道推数据。
> 如果希望完全停止采集以释放麦克风,请使用 `unpublishLocalTrack` + `stopCapture`。
---
### unpublishLocalTrack / publishLocalTrack
彻底停止/重启推流,会触发远端的 `USER_TRACK_REMOVE` / `USER_TRACK_ADD` 事件。适合用户离开舞台、会议中「停止分享」等场景。
```typescript
// ── 停止发布(彻底退出推流)──────────────────────────────────────────────────
await srtc.unpublishLocalTrack(localMicTrack);
localMicTrack.stopCapture();
localMicTrack = undefined;
// ── 重新发布(需要重新创建轨道)──────────────────────────────────────────────
localMicTrack = srtc.createLocalMicTrack(MicPresets.music);
await localMicTrack.startCapture();
await srtc.publishLocalTrack(localMicTrack);