- ✅ 音量控制:支持0-100%音量调节
- ✅ 静音功能:支持静音/取消静音切换
- ✅ 实时状态:音量状态实时同步
- ✅ 多接口支持:HTTP API和UPnP协议均支持
- 📺 媒体播放:支持设置媒体URL进行播放
- ⏸️ 播放控制:播放/暂停/停止
- 🌐 UPnP协议:兼容标准UPnP媒体渲染器
- 📱 Web界面:简洁的Web控制面板
- 🔍 设备发现:支持SSDP设备发现协议
go run main.go打开浏览器访问:http://localhost:3000
POST /volume
Content-Type: application/json
{
"volume": 75
}POST /mute
Content-Type: application/json
{
"mute": true
}POST /play
Content-Type: application/json
{
"url": "https://example.com/video.mp4"
}POST /pausePOST /stopGET /statusGetVolume- 获取当前音量SetVolume- 设置音量GetMute- 获取静音状态SetMute- 设置静音状态
SetAVTransportURI- 设置媒体URIPlay- 开始播放Pause- 暂停播放Stop- 停止播放
- 实时状态显示
- 音量滑块控制
- 静音/取消静音按钮
- 媒体URL输入
- 播放控制按钮
- 音量调节测试
- 静音功能测试
- 媒体控制测试
- 状态监控
- 语言:Go
- 网络:HTTP + UPnP协议
- 发现:SSDP协议
- 前端:HTML5 + JavaScript
- 并发:goroutine + sync.RWMutex
tv-cast-server/
├── main.go # 主程序
├── go.mod # Go模块
├── go.sum # 依赖锁定
├── services/ # UPnP服务描述文件
│ ├── avtransport.xml
│ ├── connectionmanager.xml
│ └── renderingcontrol.xml
├── test_volume_control.html # 测试页面
└── README.md # 说明文档
TVCastServer:主服务结构handleRenderingControl:音量/静音处理handleAVTransportControl:媒体控制处理handleControlPage:Web控制界面
- 打开 http://localhost:3000
- 使用音量滑块调节音量
- 点击静音按钮切换静音状态
- 输入媒体URL并点击播放
# 设置音量为75%
curl -X POST http://localhost:3000/volume \
-H "Content-Type: application/json" \
-d '{"volume": 75}'
# 静音
curl -X POST http://localhost:3000/mute \
-H "Content-Type: application/json" \
-d '{"mute": true}'
# 播放媒体
curl -X POST http://localhost:3000/play \
-H "Content-Type: application/json" \
-d '{"url": "https://example.com/video.mp4"}'- 操作系统:Windows/Linux/macOS
- 浏览器:Chrome/Firefox/Safari/Edge
- UPnP客户端:支持标准UPnP协议的设备
- 确保防火墙允许3000端口访问
- 对于UPnP发现,确保网络支持多播
- 音量控制为模拟实现,实际音量控制需集成音频系统