直播:LIVE_PUBLIC_IP 与 ICE 诊断;摄像头错误中文提示与约束放宽

Made-with: Cursor
This commit is contained in:
whm
2026-03-25 16:19:19 +08:00
parent 996dc3778d
commit d83a69c23a
5 changed files with 91 additions and 15 deletions

View File

@@ -9,12 +9,30 @@ import (
)
// MediaEngine 与 API 构建(全局复用,避免重复注册编解码器)
// 部署在 Docker/NAT 后若观众端黑屏、信令正常,请设置 LIVE_PUBLIC_IP 为本机公网 IPv4与域名解析一致可逗号分隔多个
func buildAPI() (*webrtc.API, error) {
m := &webrtc.MediaEngine{}
if err := m.RegisterDefaultCodecs(); err != nil {
return nil, err
}
api := webrtc.NewAPI(webrtc.WithMediaEngine(m))
se := webrtc.SettingEngine{}
if raw := strings.TrimSpace(os.Getenv("LIVE_PUBLIC_IP")); raw != "" {
parts := strings.Split(raw, ",")
var ips []string
for _, p := range parts {
p = strings.TrimSpace(p)
if p != "" {
ips = append(ips, p)
}
}
if len(ips) > 0 {
se.SetNAT1To1IPs(ips, webrtc.ICECandidateTypeHost)
}
}
api := webrtc.NewAPI(
webrtc.WithMediaEngine(m),
webrtc.WithSettingEngine(se),
)
return api, nil
}