问题标签 [webrtc-android]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
android - 在 Android 应用程序中使用 WebRTC 进行视频流
我正在使用 WebRTC 在我的 android 应用程序和 Web 应用程序之间进行媒体流通信。对于信号,我使用了 socket.io 并使用 socket,我已经建立了 android 应用程序和 Web 应用程序之间的连接。我可以在移动应用程序上发送报价和接收答案,理想情况下,流媒体应该开始,但在我的情况下,它会在网络上抛出这个错误。
我认为这是因为无法与 TURN 服务器建立连接。有人可以帮我弄这个吗。我正在使用这段代码进行 TURN 服务器连接。另外请告诉我如何验证我与 TURN 的连接是否已建立。
这是我试图创建对等连接的一段代码。
如果有人想更好地查看代码,我将分享更多细节。请我需要帮助,因为我什至找不到这方面的文档。
android - Android WebRTC:从新的 getStats() API 消费数据的标准方式是什么
我使用 getStats(RTCStatsCollectorCallback callback) API 来获取“发送比特率”和“接收比特率”值。
我面临两个问题:
1)。当会议中只有 1 个用户时,有时“发送的比特率”值会变得非常大(以 mbps 为单位)。
2)。当会议中只有 2 个(或更多)用户并且一个用户(不是主持人)共享他的屏幕时,返回的值波动太大(意味着有时它非常小,有时它非常大(以 mbps 为单位))。
我想我在使用新 getStats() API 的数据时遗漏了一些东西。任何帮助或指导将不胜感激。
android - 应用程序在关闭对等连接时崩溃 appRTC android
我已经在我的应用程序中实现了 appRTC,但将其流程更改为一位主持人的多位客人(如会议等)。但是我面临的问题是,当我从主机端断开连接时,应用程序崩溃了。它还在与 SQLite 和约束相关的日志上显示了不同的奇怪异常。我已经为此工作了一周,但找不到任何东西。这次我得到了这个。
2020-08-11 18:10:01.856 19916-19916/? E/SQLiteDatabase:无法打开数据库“/data/user/0/com.facebook.appmanager/databases/androidx.work.workdb”。android.database.sqlite.SQLiteCantOpenDatabaseException:未知错误(代码 14):无法打开数据库
我用来关闭对等连接的代码如下:
和 closeInternal() :
android - Android WebRTC 远程流未在 SurfaceView 上显示,获得 0 帧
我正在尝试将我的网络摄像头从计算机上的网页本地流式传输到 Android 应用程序(本机 WebRTC)。我使用 WebRTC 进行对等连接,使用带有 Socket.io 的 NodeJS 进行信号传输。当我启动视频流时,所有 sdp 似乎都已正确设置,但在我的 Andorid 表面视图上没有播放任何曲目。我得到的只是一个黑屏和这个控制台输出:
这是我的代码,对不起,我只是不知道问题的根源在哪里。
Peer 1(网页,JS)
对等 2(Android、Java)
}
android - Webrtc Android:屏幕共享在 API 29 (Android 10) 上停止工作
在我的面向 Android API 28 的应用中,通过屏幕共享。Webrtc 工作正常。
根据最近的 Google 指南(Target API 29 任务的截止日期是 2020 年 11 月 2 日),今天我已将targetSdkVersion和compileSdkVersion更改为Android API 29,反过来,屏幕共享停止工作。
任何帮助或指导将不胜感激。
android - 连接耳机时,WebRTC android应用程序正在创建回声
设备之间正在建立对等连接,并且任何一方的人都能够进行通信。任何一个或两个设备都使用EARPIECE时不会出现任何问题。
当两个设备都使用EARPHONES或INBUILT_SPEAKER进行音频通信时,就会出现问题。
依赖:'org.webrtc:google-webrtc:1.0.30039'
我已经尝试过以下选项
选项1
选项-2
请帮我弄清楚缺少什么。我怎样才能消除或减少这种回声?
java - 当我以横向/反向横向启动 Activity 时,Android webrtc SurfaceViewRenderer 预览变为空白
我正面临这个奇怪的问题,SurfaceViewRenderer
每当我在横向/反向横向/传感器横向中运行活动时,预览就会变为空白。奇怪的问题是,在某些手机中,视频预览在反向横向模式和某些手机横向模式下工作。例如,当我在 中运行活动时Android 5.0
,横向模式下的视频预览工作正常,但在反向横向模式下却不行。然后我尝试在我正在运行的 Oneplus 手机上做同样的事情Android 10
。在这里,SurfaceViewRenderer 中的视频预览在反向横向模式下工作正常,但在横向模式下不行。
注意:即使预览变为空白,远程流也可以正常工作,只有视频预览不起作用。它以某种方式无法更新SurfaceViewRenderer
但没有问题流向远程参与者。
这就是我初始化视频预览的方式。
我的摄像机设置以预览和流式传输
这就是我创建相机捕捉器的方式
这是我在清单文件中声明的活动。
我试图检查CameraX
预览是否会发生这种情况。CameraX
在androidx.camera.view.PreviewView
视频预览中使用在各种方向上都可以正常工作。但是SurfaceViewRenderer
视频预览不起作用。
在这方面的任何帮助将不胜感激。提前致谢。
ios - WebRTC iOS 原生 SDK 长期冻结
我正在开发一个 iOS 应用程序,该应用程序使用 WebRTC 的本机 SDK 来提供对来自不同摄像机的流的访问。使用的编解码器是 H264/AVC。
尽管大多数相机流都可以正常工作,但有些相机流在首次启动时会一直冻结。看起来这些帧没有被解码,但我不确定如何修复它。
当我启用调试日志记录时,我在 WebRTC 的日志中看到很多以下内容:
(rtp_frame_reference_finder.cc:240):数据包范围为 [21170, 21170] 的通用帧没有 GoP,丢帧。(rtp_frame_reference_finder.cc:240):数据包范围为 [21169, 21169] 的通用帧没有 GoP,丢帧。(video_receive_stream.cc:699):200 毫秒内没有可解码帧,请求关键帧。
(video_receive_stream.cc:699):200 毫秒内没有可解码帧,请求关键帧。
当出现冻结时,从不会调用video_broadcaster.cc上的VideoBroadcaster::OnFrame ,这会阻止整个流流启动。当我在 Xcode 上测试并暂停/取消暂停调试器时,几乎总是流将开始工作,我看到VideoBroadcaster::OnFrame被触发并且帧开始被解码。因此,暂停/取消暂停过程以某种方式解决了问题并启动了流。
在从未设置编码器的 iOS SDK 上。我使用了SDK提供的RTCVideoEncoderFactoryH264编码器。我已经为接口/协议RTCVideoEncoderFactory提供了实现,并尝试覆盖 SDK 中的编码器。在所有这些情况下,都不会调用createEncoder()函数。但是,解码器没有问题,它设置正确。
在RTCInboundRTPVideoStream统计报告中,PLICount和NACKCount正在稳步增加。我的理解是接收器让其他对等方知道编码视频中存在图片丢失。
由于我不知道究竟是什么阻止了帧被解码,所以我想在 PLICount 或 NACKCount 增加时重新启动流。
如果不经历整个 SDP 提供/回答过程,我怎么能做到这一点?我看到的唯一方法是切换RTCMediaStreamTrack上的isEnabled标志,但这并不能解决我的问题。
我可以更新任何编码/解码参数以重新启动流吗?
暂停/取消暂停修复问题的调试器的原因可能是什么?
reactjs - Web RTC 本地音频问题
我正在尝试实现一个基于 webrtc 的视频聊天室,但遇到了以下问题。
当呼叫开始并且我的本地流开始时,我会在其他设备接收之前在我的设备上收听我的音频。这些设备相距足够远,因此回声不会影响它们。我不知道这是不是因为我做错了什么,或者总是这样。我感谢任何建议。