问题标签 [replaykit]

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 回答
1837 浏览

swift - 使用 CVPixelBuffer 创建 RTCVideoframe

在创建 RTCVideoframe 时需要帮助

这是 RTCVideoframe 的 init 方法 RTCVideoFrame(buffer: RTCVideoFrameBuffer, rotation: RTCVideoRotation, timeStampNs: Int64)

我能够将输入缓冲区作为 CVPixelBuffer

我怎样才能转换CVpixelBufferRTCVideoFrameBuffer.

谢谢,非常感谢任何帮助

0 投票
1 回答
555 浏览

ios - 如何控制从控制器中心启动的上传扩展?

我实现了上传扩展并设置了 RTMP 服务器以通过上传扩展进行广播。广播是从控制中心发起的,而不是通过 SetupUI 扩展。由于 SampleHandler.m 不提供 RPBroadcastController,我无法以编程方式暂停或停止广播。我想至少停止广播并显示服务器不可用的错误消息。我浏览了所有 WWDC 文档,但找不到太多信息。Mobcrush 显示“未登录”之类的错误消息,他们是如何做到的?

0 投票
0 回答
262 浏览

ios - “存储” CMSampleBuffer 或 CVPixelBuffer 以供以后使用的正确方法

目前正在处理Replay Kit上传扩展和 RTMP 流。Replay Kit效果很好,但它只CMSampleBufferRef在屏幕上有任何变化时提供,所以如果用户停留在屏幕上并且没有任何动作,它会停止提供CMSampleBufferRef. 我将其转换CMSampleBufferRefCVPixelBufferRef然后推送到 RTMP。这是问题所在。我需要继续推送最新的 CMSampleBufferRef,以防回复工具包不再提供 SampleBufferRef。

我尝试了许多不同的方法来“存储” SampleBufferReforCVPixelBufferRef但到目前为止还没有运气。

我可能不理解 bufferRef 和内存相关东西的概念。

0 投票
1 回答
3752 浏览

ios - ReplayKit – 使用内部音频录制屏幕视频

最近在做一个项目时,我需要用 App 音频和麦克风音频录制系统屏幕。

我尝试了以下解决方案。

  1. 借助 Replay kit 及其函数 startRecording

调用函数之前

问题是视频记录并保存到相机胶卷,但保存的视频中既没有 App Audio 也没有 Mic Audio Records

然后我尝试了 Replay Kit 的 screenCapture 功能。代码如下

请建议我做错了什么。

0 投票
0 回答
1194 浏览

ios - 使用 replaykit 的 iOS 广播扩展不起作用

嗨,我正在尝试制作支持 Mobcrush 等屏幕广播功能的广播应用程序。

所以我尝试实现在 WWDC 上介绍的广播应用程序扩展,但我的演示应用程序不能正常工作。我的演示应用程序没有广播,只是向我显示一个错误警报,上面写着“对 MYDemoApp 的直播已停止,原因是:(null)”

这是我在演示应用上所做的事情

实现应用扩展(BroadCast 扩展。这使得 SampleHandler、BroadcastSetupViewController)

Pod 安装并复制了我没有从其他开发者的演示应用程序 (HaishinKit) 编写的代码 ( https://github.com/shogo4405/HaishinKit.swift )

在 BroadcastSetupViewController 的 userDidFinishSetup() 中放入 RTMP URL 字符串

另外,我认为这不是 RTMP URL 问题。因为我已经使用该 URL 进行了相机(前、后)广播测试(不是应用程序扩展。只是在简单的 ViewController 中)。

你能告诉我一个提示吗?对于任何反馈,我们都表示感谢!

感谢您阅读我关于编码的第一个问题。

0 投票
4 回答
4924 浏览

ios - Replaykit,startCaptureWithHandler() 未在 captureHandler 中发送 Video 类型的 CMSampleBufferRef

我已经实现了一个RPScreenRecorder,它记录屏幕和麦克风音频。完成多个录制后,我停止录制并将音频与视频AVMutableComposition合并,然后合并所有视频以形成单个视频。

对于屏幕录制和获取视频和音频文件,我正在使用

用于停止录制。我调用这个函数:

这些都很直截了当。

大多数时候效果很好,我会收到视频和音频 CMSampleBuffers。但有时它startCaptureWithHandler只会发送给我音频缓冲区而不是视频缓冲区。 一旦我遇到这个问题,直到我重新启动设备并重新安装应用程序才会解决。这使得我的应用程序对用户来说非常不可靠。我认为这是一个重播工具包问题,但无法与其他开发人员发现相关问题。让我知道你们中是否有人遇到这个问题并得到了解决方案。

我检查了多次,但没有发现配置有任何问题。但无论如何,它就在这里。

startCaptureWithHandler 函数也具有非常简单的功能:

此外,当这种情况发生时,系统屏幕录像机也会损坏。单击系统记录器时,会显示此错误:

媒体服务错误

错误提示“屏幕录制已停止,原因是:由于 Mediaservices 错误导致录制失败”。

应该有两个原因:

  1. iOS Replay 套件处于测试阶段,这就是为什么它在使用后有时会出现问题。
  2. 我已经实现了任何有问题的逻辑,这会导致 replaykit 崩溃。

如果是问题没有。1,那就没问题了。如果这是问题号。2 那么我必须知道我可能错在哪里?

意见和帮助将不胜感激。

0 投票
0 回答
596 浏览

ios - Xcode 10 beta:链接器命令失败,退出代码为 1 RPSystemBroadcastPickerView

我试图在模拟器上构建和运行以下代码,但出现链接器错误:

架构 x86_64 的未定义符号:“_OBJC_CLASS_$_RPSystemBroadcastPickerView”,引用自:ViewController.o ld 中的 objc-class-ref:未找到架构 x86_64 的符号

clang:错误:链接器命令失败,退出代码为 1(使用 -v 查看调用)

看起来是RPSystemBroadcastPickerView实例导致了问题,知道吗?

编辑

我注意到 iOS 11 中可用的一些 ReplayKit 类RPScreenRecorder工作得很好,似乎只有 iOS 12 中的新类可能会导致这样的问题。

0 投票
1 回答
506 浏览

ios - 是否可以使用 AVAssetWriter 将广播样本编码为 MPEG-ts 或 fmp4 文件?

我知道这是一个常见问题,没有简单的解决方案。

找到了一个相同的演示 - http://blog.denivip.ru/index.php/2017/01/live-streaming-on-ios/?lang=en,但它不使用 AVAssetWriter。

人们还建议使用bento4 库,但我希望能够以编程方式完成它,而无需创建新进程,也无需创建新文件和使用 AVAssetWriter 的延迟。

如果不可能,为什么 IOS 没有内置支持使用 AVAssetWriter 使用示例创建这些文件?

RTSP 是 Apple 推荐的直播流媒体的唯一选择吗?

0 投票
0 回答
1007 浏览

ios - 使用 WebRTC 的 ReplayKit 在反复进入后台后停止工作

我正在使用 WebRTC 创建点对点连接以共享屏幕和音频。我正在使用 ReplayKit 捕获屏幕,它生成CMSampleBufferRef; 使用我可以创建RTCVideoFrame的 .

要获得CMSampleBufferRef我正在使用的:

到目前为止,一切正常。

当我开始将应用程序发送到后台并返回几次时,就会出现问题;然后 ReplayKit 停止调用他的捕获处理程序。仅当我将其发送CMSampleBufferRef到 WebRTC 时才会发生这种情况,因此很明显 ReplayKit 问题与 WebRTC 有关。如果我从代码中删除这一行,问题就不会发生(但显然 WebRTC 不起作用)。

[self->source capturer:self->capturer didCaptureVideoFrame:videoFrame];

我可以让它再次工作的唯一方法是重新启动设备。即使杀死应用程序并重新启动也不起作用。

这就是我RTCVideoTrack在视图控制器中创建的方式:

以下是我如何转换CMSampleBufferRef并发RTCVideoFrame送到 WebRTC:

0 投票
2 回答
2749 浏览

swift - ReplayKit:RPScreenRecorder.shared().startCapture() 不工作

ReplayKit最近真的让我很沮丧。由于某些原因

当我调用它时实际上不起作用,因为我在其中有一个print()语句并且它从未被调用过。

我的代码ViewController是:

打印“这里”,但不打印“记录”

[ps 很抱歉代码格式错误,我相信你会理解 :)]


我也尝试了另一种方法:

并停止录制...

当我调用 recorder.stopRecording() 函数时,此方法不会停止,永远不会调用“停止录制”。


有人可以帮我吗,因为这真的让我很沮丧,你怎么能正确ReplayKit地在 iOS 11 中记录你的屏幕?我在互联网上搜索过,没有一种方法对我有用,我不知道为什么。PS 我的 Info.plist 中有必要的权限密钥。

谢谢