Skip to content

chindev2012/pc2tv-react

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

PC2TV 投屏工具

一个基于 Wails + React + Go 开发的跨平台投屏应用,支持将本地媒体文件投屏到智能电视或支持 DLNA/UPnP 的设备。

✨ 功能特性

  • 🎯 设备自动发现:自动扫描局域网内的 UPnP/DLNA 设备
  • 📺 智能电视支持:支持主流智能电视(小米、索尼、三星等)
  • 🎬 媒体播放控制:播放、暂停、停止、音量控制、进度调节
  • ⏱️ 实时进度显示:显示当前播放进度和总时长
  • 🎛️ 音量控制:支持静音和音量调节
  • 🎨 现代化界面:响应式设计,支持明暗主题切换
  • 🔄 自动重连:设备连接异常时自动重试
  • 📊 详细日志:完整的调试信息和错误处理

🚀 快速开始

环境要求

  • Go 1.18+
  • Node.js 16+
  • Wails CLI v2.10.2+

安装依赖

# 安装 Wails CLI
go install github.com/wailsapp/wails/v2/cmd/wails@latest

# 安装前端依赖
cd frontend
npm install

开发模式运行

# 在项目根目录运行开发模式
wails dev

构建发布版本

# 构建生产版本
wails build

# 构建并打包安装程序
wails build -package

📖 使用指南

1. 设备发现

  1. 确保电脑和电视连接到同一 WiFi 网络
  2. 打开应用,点击"搜索"按钮扫描设备
  3. 从设备列表中选择要投屏的电视

2. 选择媒体文件

  1. 点击"选择文件"按钮选择本地媒体文件
  2. 支持视频和音频文件(MP4, AVI, MP3, MKV 等)

3. 播放控制

  • 播放/暂停:控制媒体播放状态
  • 进度条:拖动进度条跳转到指定位置
  • 音量控制:调节电视音量或静音
  • 停止:停止当前播放

🛠️ 技术栈

后端 (Go)

  • Wails:跨平台桌面应用框架
  • go-ssdp:UPnP 设备发现和控制
  • 标准库:HTTP 客户端、XML 解析等

前端 (React)

  • React 18:用户界面框架
  • Vite:构建工具和开发服务器
  • CSS3:现代化样式和动画效果

核心功能模块

  • 设备发现 (internal/upnp/discovery.go):扫描局域网 UPnP 设备
  • 媒体控制 (internal/upnp/control.go):播放、暂停、音量控制
  • 进度管理 (main.go): 实时获取播放进度和时长
  • Web 服务 (internal/upnp/web_server.go):媒体文件服务

🔧 开发指南

项目结构

pc2tv/
├── main.go                 # 主程序入口和 Wails 绑定
├── internal/
│   ├── upnp/              # UPnP 相关功能
│   │   ├── discovery.go   # 设备发现
│   │   ├── control.go     # 媒体控制
│   │   ├── web_server.go  # Web 服务
│   │   └── types.go       # 数据类型定义
│   └── utils/             # 工具函数
├── frontend/              # 前端代码
│   ├── src/
│   │   ├── App.jsx        # 主组件
│   │   ├── App.css        # 样式文件
│   │   └── main.jsx       # 入口文件
│   └── package.json       # 前端依赖
└── wails.json            # Wails 配置

添加新功能

  1. 后端方法:在 main.go 中添加新的 Go 方法
  2. 前端绑定:运行 wails build 生成 TypeScript 绑定
  3. 界面组件:在 frontend/src/App.jsx 中添加 UI 组件

调试技巧

# 查看详细日志
wails dev -verbose

# 浏览器调试
# 开发模式下访问 http://localhost:34115

🐛 常见问题

Q: 找不到设备?

A: 确保电视和电脑在同一网络,电视已开启投屏功能

Q: 播放失败?

A: 检查媒体文件格式是否被电视支持

Q: 进度条不更新?

A: 某些电视设备可能不支持进度查询功能

Q: 音量控制无效?

A: 部分电视可能不支持远程音量控制

📝 更新日志

v1.0.0 (2024)

  • ✅ 基础设备发现功能
  • ✅ 媒体播放控制
  • ✅ 实时进度显示
  • ✅ 音量控制
  • ✅ 明暗主题支持

🤝 贡献指南

  1. Fork 本项目
  2. 创建功能分支 (git checkout -b feature/AmazingFeature)
  3. 提交更改 (git commit -m 'Add some AmazingFeature')
  4. 推送到分支 (git push origin feature/AmazingFeature)
  5. 打开 Pull Request

📄 许可证

本项目采用 MIT 许可证 - 查看 LICENSE 文件了解详情

🙏 致谢

  • Wails - 优秀的跨平台桌面应用框架
  • go-ssdp - UPnP 设备发现库
  • React - 用户界面框架

📞 支持

如有问题或建议,请提交 Issue 或联系开发团队。

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published