MCPcopy Index your code
hub / github.com/ddssingsong/webrtc_android

github.com/ddssingsong/webrtc_android @v1.2.2

Chat with this repo
repository ↗ · DeepWiki ↗ · release v1.2.2 ↗ · + Follow
2,579 symbols 5,725 edges 191 files 531 documented · 21% updated 18mo agov1.2.2 · 2020-05-24★ 1,72235 open issues
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

video conference

logo

概述

English Documents

基于 webrtc 开发的一套可以进行单路或者多路语音、视频的系统。高仿微信九宫格显示,最多可支持 9 路视频。

通过这个项目,你可以深刻学习并理解webrtc通话的整个流程。这个项目只是作为学习使用,是一个很好的webrtc入门项目,如果你感兴趣的话,赶紧开始吧

服务器搭建

nodejs:https://github.com/ddssingsong/webrtc_server_node for branch:branch_meeting(会议)

java: https://github.com/ddssingsong/webrtc_server_java for branch:master

如果需要详细的部署流程可参考博客

https://blog.csdn.net/u011077027/article/details/86225524 (csdn)

实现功能

  • 已实现功能:
  • 支持一对一语音和视频
  • 支持多对多语音和视频会议
  • 灵活替换wss信令服务器和stun/turn转发穿透服务器
  • 动态权限申请
  • 切换摄像头、免提、开启静音、关闭视频保留声音
  • 呼叫、响铃、拨打电话的整个流程
  • 将信令模块和UI提取出来,将核心代码封装成SDK

  • 正在开发的功能:

  • 各种优化,使用体验啥的
  • 2.0.0_preview 正在开发中

实现效果展示

  1. 单人通话

process

  1. 多人会话

process

更新日志

v1.2.0

使用androidx

v1.1.2

新增功能:

  1. 仿微信九宫格
  2. 会议添加扬声器和关闭摄像头功能

v1.1.1

保存代码,便于后续的开发

v1.1.0

完成基本视频会议

demo测试

apk:Android端测试

借鉴

  1. https://github.com/LingyuCoder/SkyRTC

服务端和网页端的实现基于此修改

  1. https://webrtc.org/

webrtc网站

  1. https://webrtc.googlesource.com/src/+/master/examples

google git demo

webrtc源码编译时间:2019年4月

License

MIT License Copyright (c) 2019 哒哒瑟

共同探索

QQ群名称:webrtc技术交流群

QQ群 号:601332720 619413989 (2群)

加入群一起探讨webrtc,分享好的开源项目

Extension points exported contracts — how you extend this code

BlockingOperation (Interface)
Utility interface to be used with executeUninterruptibly() to wait for blocking operations to complete without getting i [21 …
libwebrtc/src/main/java/rtc_base/java/src/org/webrtc/ThreadUtils.java
CallSessionCallback (Interface)
(no doc) [4 implementers]
module_p2pchat/src/main/java/com/dds/skywebrtc/CallSession.java
IUserState (Interface)
Created by dds on 2019/8/2. android_shuai@163.com [2 implementers]
app/src/main/java/com/dds/java/socket/IUserState.java
VideoDecoderFactory (Interface)
Factory for creating VideoDecoders. [8 implementers]
libwebrtc/src/main/java/sdk/android/api/org/webrtc/VideoDecoderFactory.java
ISkyEvent (Interface)
Created by dds on 2019/8/21. android_shuai@163.com [2 implementers]
module_p2pchat/src/main/java/com/dds/skywebrtc/inter/ISkyEvent.java
IEvent (Interface)
Created by dds on 2019/7/26. android_shuai@163.com [2 implementers]
app/src/main/java/com/dds/java/socket/IEvent.java
VideoEncoderFactory (Interface)
Factory for creating VideoEncoders. [8 implementers]
libwebrtc/src/main/java/sdk/android/api/org/webrtc/VideoEncoderFactory.java
ILogEvent (Interface)
Created by dds on 2020/2/10. 通话记录 去电 来电 通话时长 通话类型 是否接听
module_p2pchat/src/main/java/com/dds/skywebrtc/inter/ILogEvent.java

Core symbols most depended-on inside this repo

d
called by 317
libwebrtc/src/main/java/rtc_base/java/src/org/webrtc/Logging.java
e
called by 138
libwebrtc/src/main/java/rtc_base/java/src/org/webrtc/Logging.java
add
called by 81
libwebrtc/src/main/java/sdk/android/api/org/webrtc/Metrics.java
release
called by 60
libwebrtc/src/main/java/sdk/android/api/org/webrtc/EglBase.java
w
called by 57
libwebrtc/src/main/java/rtc_base/java/src/org/webrtc/Logging.java
checkIsOnValidThread
called by 36
libwebrtc/src/main/java/rtc_base/java/src/org/webrtc/ThreadUtils.java
getCurrentSession
called by 28
module_p2pchat/src/main/java/com/dds/skywebrtc/SkyEngineKit.java
getWidth
called by 27
libwebrtc/src/main/java/sdk/android/api/org/webrtc/VideoFrame.java

Shape

Method 2,218
Class 243
Interface 73
Enum 45

Languages

Java100%

Modules by API surface

libwebrtc/src/main/java/sdk/android/api/org/webrtc/PeerConnection.java173 symbols
libwebrtc/src/main/java/sdk/android/api/org/webrtc/PeerConnectionFactory.java82 symbols
libwebrtc/src/main/java/sdk/android/api/org/webrtc/MediaCodecVideoDecoder.java77 symbols
libwebrtc/src/main/java/sdk/android/api/org/webrtc/NetworkMonitorAutoDetect.java70 symbols
libwebrtc/src/main/java/sdk/android/api/org/webrtc/MediaCodecVideoEncoder.java68 symbols
module_p2pchat/src/main/java/com/dds/skywebrtc/CallSession.java56 symbols
libwebrtc/src/main/java/sdk/android/api/org/webrtc/audio/JavaAudioDeviceModule.java43 symbols
libwebrtc/src/main/java/modules/audio_device/android/java/src/org/webrtc/voiceengine/WebRtcAudioTrack.java42 symbols
libwebrtc/src/main/java/modules/audio_device/android/java/src/org/webrtc/voiceengine/WebRtcAudioRecord.java39 symbols
libwebrtc/src/main/java/sdk/android/api/org/webrtc/EglRenderer.java38 symbols
app/src/main/java/com/dds/java/socket/DWebSocket.java38 symbols
libwebrtc/src/main/java/sdk/android/src/java/org/webrtc/EglBase10Impl.java37 symbols

For agents

$ claude mcp add webrtc_android \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact

Ask about this repo answers extend the page