const env = srtc.getEnvInfo();
if (!env.secure) {
alert('请使用 HTTPS 或 localhost 访问本页面');
} else if (!env.mediaDevices) {
alert('浏览器不支持媒体设备访问,请检查权限设置');
}
```typescript
---
### 本地开发时能收流,但推不了流怎么办?
**原因:** 大概率是页面在普通 HTTP 下运行,浏览器限制了 WebRTC 推流。
**解决方案:** 使用 `http://localhost` 或 `http://127.0.0.1` 访问本地开发环境,不要使用 `http://[本机局域网 IP]`(该协议不支持推流)。
协议与推流支持情况详见 [集成 - URL 协议限制](/zh/rtc/web/integration#url-协议限制)。
---
### 视频/音频自动播放被浏览器阻止怎么处理?
浏览器的自动播放策略禁止在没有用户手势的情况下播放媒体,表现为调用 `startPlay()` 后无声音或无画面。
SDK 会通过 `TRACK_AUTOPLAY_FAIL` 事件通知你:
```typescript
srtc.onNotifyChannelEvent = (evt) => {
if (evt.type === ChannelEventType.TRACK_AUTOPLAY_FAIL) {
// 方案一:SDK 内置引导弹窗(默认开启)
// 用户点击弹窗后会自动触发播放
// 方案二:自己处理,在用户点击按钮时重新播放
const failedTrack = evt.data; // BaseTrack
document.querySelector('#play-btn')!.addEventListener('click', async () => {
if (failedTrack instanceof RemoteAudioMixTrack) {
await failedTrack.startPlay({ disableAutoPlayDialog: true });
}
}, { once: true });
}
};