Skip to content

alfred888/ichat_app

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 

Repository files navigation

视频对讲系统 iOS客户端

这是一个用于视频对讲系统的iOS客户端应用,支持与树莓派设备进行双向视频通话和云台控制。

功能特性

📱 手机端功能

  • 双向视频通话: 实时视频传输,支持前置摄像头
  • 云台控制: 通过触摸按钮控制云台上下左右移动
  • 音频通话: 支持双向语音通话
  • 网络连接: 通过WiFi连接到树莓派设备
  • 实时状态显示: 显示连接状态和操作反馈

🎛️ 云台控制

  • 方向控制: 上、下、左、右四个方向控制
  • 停止功能: 一键停止所有云台运动
  • 实时响应: 按下即执行,松开即停止

技术架构

核心组件

  • VideoCallViewController: 主视频通话界面
  • NetworkManager: WebSocket网络通信管理
  • VideoStreamManager: 视频流编码/解码管理
  • AVFoundation: 摄像头和麦克风访问

网络协议

  • WebSocket: 用于控制命令传输
  • H.264: 视频编码格式
  • AAC: 音频编码格式

系统要求

  • iOS 13.0+
  • Xcode 12.0+
  • Swift 5.0+
  • 支持摄像头和麦克风的设备

权限配置

应用需要以下权限:

  • 摄像头访问权限 (NSCameraUsageDescription)
  • 麦克风访问权限 (NSMicrophoneUsageDescription)
  • 本地网络访问权限 (NSLocalNetworkUsageDescription)

使用方法

1. 连接设备

  1. 启动应用
  2. 点击"开始视频通话"
  3. 输入树莓派设备的IP地址(默认:192.168.1.100)
  4. 点击"连接"按钮

2. 云台控制

  • : 云台向上移动
  • : 云台向下移动
  • : 云台向左移动
  • : 云台向右移动
  • 停止: 停止所有云台运动

3. 视频通话

  • 本地视频显示在右上角小窗口
  • 远程视频显示在主屏幕区域
  • 支持横屏和竖屏模式

开发说明

项目结构

ichat_app/
├── ViewController.swift              # 主界面控制器
├── VideoCallViewController.swift    # 视频通话界面
├── NetworkManager.swift             # 网络管理
├── VideoStreamManager.swift         # 视频流管理
├── Info.plist                      # 应用配置
└── Assets.xcassets/                # 资源文件

关键实现

  1. 视频捕获: 使用AVCaptureSession进行摄像头和麦克风访问
  2. 视频编码: 使用VideoToolbox进行H.264硬件编码
  3. 网络通信: 使用URLSessionWebSocketTask进行WebSocket连接
  4. 云台控制: 通过JSON格式发送控制命令

自定义配置

  • 修改NetworkManager.swift中的默认端口号
  • 调整VideoStreamManager.swift中的视频编码参数
  • 更新Info.plist中的权限描述文本

树莓派端要求

树莓派端需要运行相应的服务程序,支持:

  • WebSocket服务器(默认端口8080)
  • 视频流接收和发送
  • 云台电机控制
  • 音频处理

故障排除

连接问题

  • 确保手机和树莓派在同一网络
  • 检查IP地址是否正确
  • 确认树莓派端服务正在运行

视频问题

  • 检查摄像头权限是否已授权
  • 确认网络连接稳定
  • 查看控制台日志获取详细错误信息

云台控制问题

  • 确保WebSocket连接正常
  • 检查树莓派端云台控制服务状态
  • 验证控制命令格式是否正确

版本历史

  • v1.0: 初始版本,支持基础视频通话和云台控制

许可证

本项目仅供学习和研究使用。

About

视频对讲系统iOS客户端 - 支持双向视频通话和云台控制

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages