问题标签 [webrtc-ios]

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.

0 投票
1 回答
206 浏览

ios - 通过Webrtc连接到不同网络的不同地方的两台设备无法运行IOS(Swift)

哪些步骤将重现该问题?

  1. 当我在本地测试 2 个或多个设备(都连接到同一个网络)时,它对我来说工作正常
  2. 当我测试 2 个或多个设备(都连接到不同的网络)时,它对我有用
  3. 当我有一个设备连接到一个地方的网络而第二个设备连接到另一个地方的不同网络时,就会出现问题。然后我得到了一切设置正确,如 sdps(提供/回答/icecandidates)。但是状态是“检查”,几秒钟后它的状态变为“关闭”。

预期的结果是什么?

我看到了什么?

您使用的是什么版本的产品?在什么操作系统上?

我在用:

0 投票
1 回答
566 浏览

ios - 原生 ios webview 上的 Webrtc 支持

我想构建一个 ios 应用程序,我计划在应用程序中拥有一个原生 iOS webview。在本机 webview 中,我希望能够使用 webrtc 运行视频通话。这可能吗?原生 iOS 网页视图是否支持 webrtc?

0 投票
2 回答
384 浏览

ios - 在原生 iOS Swift 中使用 WebRTC 和 Pubnub 进行视频通话和聊天

我正在开发原生 iOS Swift 项目的医患预约应用程序。在这里,我想使用 WebRTC 和 PubNub 信令服务器实现实时视频通话。我对它完全陌生。我不知道如何实现这一点。我看过一些 Objective-C 代码,但我还是不明白。如果你们中的任何人迅速实施相同的方法,请提供帮助。

0 投票
1 回答
177 浏览

ios - 如何在 iOS 中使用 Pubnub Swift 将消息发布到频道

目前我正在开发一个需要使用 Pubnub 信号实现 WebRTC 的 iOS 项目。我将 PubNubSwift CocoaPods 添加到我的项目中。当我尝试发布消息时,发布方法期望消息类型为 JSONCodable。所以我创建了如下结构,

在发布方法中我添加了这些行,

但在回应中,我得到的结果是

我将显示 jsonString

我不知道我的代码中有什么错误。请帮我。

0 投票
0 回答
215 浏览

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统计报告中,PLICountNACKCount正在稳步增加。我的理解是接收器让其他对等方知道编码视频中存在图片丢失。

由于我不知道究竟是什么阻止了帧被解码,所以我想在 PLICount 或 NACKCount 增加时重新启动流。

如果不经历整个 SDP 提供/回答过程,我怎么能做到这一点?我看到的唯一方法是切换RTCMediaStreamTrack上的isEnabled标志,但这并不能解决我的问题。

我可以更新任何编码/解码参数以重新启动流吗?
暂停/取消暂停修复问题的调试器的原因可能是什么?

0 投票
0 回答
155 浏览

ios - How to handle a voice call using WebRTC in background in iOS Swift

I'm working on an iOS Swift project in which I need to implement a video call using WebRTC. I implemented and is working on the foreground mode. But when I close the app, the call gets disconnected. How to handle the voice call in background mode also. Please help me. I didn't work on the background mode.

0 投票
1 回答
337 浏览

ios - 将帧一次一帧输入 WebRTC iOS

我正在尝试制作一个 iOS 应用程序,对来自相机的视频进行一些预处理,然后通过 webrtc 将其发送出去。我正在使用协议对每个单独的帧进行预处理AVCaptureVideoDataOutputSampleBufferDelegate,然后使用该captureOutput方法捕获帧。

现在我需要弄清楚如何在 WebRTC 上发送它。我正在使用 Google WebRTC 库:https ://webrtc.googlesource.com/src/ 。

有一个名为RTCCameraVideoCapturer[(link)][1] 的类,大多数使用这个库的 iOS 示例应用程序似乎都在使用它。此类访问相机本身,因此我将无法使用它。它使用AVCaptureVideoDataOutputSampleBufferDelegate,并且在captureOutput,它这样做

[self.delegate capturer:self didCaptureVideoFrame:videoFrame]似乎是将单个帧输入 webRTC 的调用。

0 投票
0 回答
303 浏览

objective-c - 无法在 iOS 上为 arm64 构建 WebRTC

我正在尝试在 iOS 设备上构建 WebRTC.xcframework。

这是我正在运行的构建它。

但是,在我将 WebRTC.xcframework 添加到我的项目后,当我尝试运行它时出现以下错误:

你能说出我错过了什么吗?

0 投票
1 回答
298 浏览

cordova - 归档 Cordova 应用程序期间找不到标头(未找到“WebRTC/RTCAudioSource.h”)

几天来我一直试图弄清楚这个问题,但仍然没有运气。

我有一个基于 Ionic v1、Cordova 9 和cordova-ios6 的遗留应用程序。

我们cordova-plugin-iosrtc用于调用功能,直到最近,它还是 eFace2Face 开发的旧版本。在遇到麦克风权限的一些问题后,我们决定升级到最新版本并完成了它的工作,但是现在我在尝试存档(产品->存档)应用程序并将其上传到 AppStore 时遇到以下错误:

如果我选择简单的构建(产品-> 构建),一切都会按预期工作。

以下是一些细节:

  1. cordova-plugin-iosrtc添加 `cordova-plugin-iosrtc-Briding-Header.h 导入所有 WebRTC/* 标头并附带 WebRTC.xcframework,其中包含所有这些 WebRTC/ 标头。
  2. WebRTC 框架包含在主应用程序目标中。
  3. 在构建部分,标头搜索路径选项明确包括调试和发布配置的标头路径。我仔细检查并更改了数十次,但无法使它们正常工作。
  4. 我创建了一个全新的项目cordova-plugin-iosrtc,效果不错,并尝试比较所有可能的选项,但没有运气。

因为,我根本不是 iOS 开发人员,也许有人可以建议还有什么可以阻止构建找到标头?

0 投票
1 回答
447 浏览

cordova - 如何在离子电容器项目上安装插件 cordova-plugin-iosrtc

我正在尝试使用 getUserMedia 来获取相机的流。据我了解,这是不可能的,因为此功能尚未在 ios 14.4 中实现或至少未授权。(不允许错误)

所以我看到获取流的唯一方法是使用下面的这个cordova插件: https ://github.com/cordova-rtc/cordova-plugin-iosrtc

我的问题是当我安装它时:npm i cordova-plugin-iosrtc

在 ios 上构建时出现错误:

如果有人设法安装它,那将是很好的帮助我。谢谢你。

⚠️ ld:找不到或使用自动链接框架“WebRTC”

❌ 架构 arm64 的未定义符号

符号:OBJC_CLASS $_RTCMediaConstraints 引用自:PluginRTCPeerConnectionConstraints.o 中的 objc-class-ref

❌ ld:未找到架构 arm64 的符号

如果有人成功安装它,我会很高兴帮助我。谢谢你。