Skip to content

chindev2012/tv-cast-server

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

TV Cast Server - 智能电视投屏服务

功能特性

新增功能:音量控制和静音

  • 音量控制:支持0-100%音量调节
  • 静音功能:支持静音/取消静音切换
  • 实时状态:音量状态实时同步
  • 多接口支持:HTTP API和UPnP协议均支持

现有功能

  • 📺 媒体播放:支持设置媒体URL进行播放
  • ⏸️ 播放控制:播放/暂停/停止
  • 🌐 UPnP协议:兼容标准UPnP媒体渲染器
  • 📱 Web界面:简洁的Web控制面板
  • 🔍 设备发现:支持SSDP设备发现协议

快速开始

启动服务

go run main.go

访问控制面板

打开浏览器访问:http://localhost:3000

API接口

音量控制

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 /pause
POST /stop

获取状态

GET /status

UPnP协议支持

渲染控制服务 (RenderingControl)

  • GetVolume - 获取当前音量
  • SetVolume - 设置音量
  • GetMute - 获取静音状态
  • SetMute - 设置静音状态

传输服务 (AVTransport)

  • SetAVTransportURI - 设置媒体URI
  • Play - 开始播放
  • 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控制界面

使用示例

通过Web界面

  1. 打开 http://localhost:3000
  2. 使用音量滑块调节音量
  3. 点击静音按钮切换静音状态
  4. 输入媒体URL并点击播放

通过API

# 设置音量为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协议的设备

注意事项

  1. 确保防火墙允许3000端口访问
  2. 对于UPnP发现,确保网络支持多播
  3. 音量控制为模拟实现,实际音量控制需集成音频系统

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages