问题标签 [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 投票
2 回答
2858 浏览

ios - 如何检测何时点击 RPSystemBroadcastPickerView

我正在使用RPSystemBroadcastPickerView从我的应用程序开始系统范围的屏幕录制。开始录制和一切都是完全自主的RPSystemBroadcastPickerView,我想这是有道理的——只有用户可以通过明确点击按钮来开始屏幕录制。

我需要知道什么时候RPSystemBroadcastPickerView被点击。现在 UI 正在显示键盘,我想继续显示(它是一个聊天应用程序)。但是,显示要选择一个的广播扩展列表的表单显示在键盘下方。见下图:

在此处输入图像描述

这有效地防止了用户开始广播。如果我知道用户何时点击RPSystemBroadcastPickerView,我可以在那一刻手动隐藏键盘。有什么建议么?

0 投票
0 回答
378 浏览

ios - ReplayKit 在反复进入后台后停止缓冲

我正在尝试使用 ReplayKit 在我的应用程序中创建直播。基本上我想分享我的屏幕并查看其他用户的屏幕。

为了获得缓冲区,ReplayKit 提供了下一个函数:

所以这是我启动 ReplayKit 并获取缓冲区的方法:

这很有效,但我面临下一个问题;如果屏幕不断变化,比如一个闪烁的按钮,当我将应用程序发送到后台并返回几次时,ReplayKit 会停止调用其捕获处理程序。

可能问题是这个功能startCapture是为了在有限的时间内录屏,而不是为了直播。

我在 Github 中做了一个示例,带有一个闪烁的按钮,显示了我遇到的问题;ReplayKit 正常运行,直到反复进入后台;然后它停止,让它再次工作的唯一方法是重新启动设备。

0 投票
1 回答
1581 浏览

ios - 如何在 iOS 中流式传输没有广播扩展的屏幕

我想将我的应用程序流式传输到 twitch、youtube 或这样的流媒体服务,而不需要任何其他应用程序,例如 mobcrush。

根据 Apple 的说法,通过使用广播扩展,我可以流式传输我的应用程序屏幕。Broadcast Extension 将视频数据作为 CMSampleBuffer 的一种类型。然后我应该将该数据发送到 rtmp 服务器,如 youtube、twitch 等。

我想如果我可以获得视频数据,我可以在我的应用程序中不使用广播扩展来流式传输其他内容。所以我尝试将 RPScreenRecorder 数据发送到 rtmp 服务器,但我不工作。

这是我写的代码。我使用 HaishinKit 开源框架进行 rtmp 通信。( https://github.com/shogo4405/HaishinKit.swift/tree/master/Examples/iOS/Screencast )

如果您有任何解决方案,请回答我:)

0 投票
0 回答
149 浏览

replaykit - 使用 iOS replaykit 广播上传扩展时的图像残留问题

我正在使用 iPad6 在 iOS11.4.1 或 12.0 下测试广播上传扩展。从 CMSampleBufferRef 提取 YUV 数据并将这些数据保存到文件后,我得到了一些坏图像。问题似乎是最后一帧图像仍然保留在新帧上,并且没有刷新。从回调中出来时,可能数据还没有准备好。我想知道如何避免这个问题。 这里有一张糟糕的图片

另一个糟糕的形象

}

0 投票
1 回答
1952 浏览

ios - 在我自己的应用程序停止从 RPScreenRecorder 接收视频缓冲区后,iOS 屏幕录像机显示媒体服务失败错误

所以这是我正在经历的场景。RPScreenRecorder我的应用程序使用它的功能通过 RP 录制屏幕和麦克风音频startCaptureWithHandler:completionHandler:。为了简要回顾我正在写下我的应用程序的伪代码

完成所需的录音后,我打电话给stopCaptureWithHandler:

有时会发生我停止从 获取视频缓冲区startCaptureWithHandler:而只是获取音频缓冲区(即使我在屏幕上进行更改)

如果发生这种情况,我会转到系统屏幕录像机screenRec 图像

这个错误来了

错误

我的问题是,我的代码/应用程序是否会导致此错误,我的应用程序流程很简单,我无法找出任何潜在的原因?还是iOS负责此错误并在频繁录制后显示错误?

0 投票
1 回答
1071 浏览

ios - iOS replayKit question. default load 'Broadcast Upload Extension' when running application?

If I run Broadcast Upload Extension scheme,

- (void)processSampleBuffer:(CMSampleBufferRef)sampleBuffer withType:(RPSampleBufferType)sampleBufferType Get it sampleBuffer.

but if I run application scheme, Broadcast Upload Extension is not working.

Why can't I get sampleBuffer?

enter image description here enter image description here

0 投票
6 回答
6012 浏览

ios - ReplayKit 的 RPSystemBroadcastPickerView 未显示首选扩展

RPSystemBroadcastPickerView用来显示一个选择器视图,用户可以从中选择一个广播服务来记录屏幕。根据文档,preferredExtension应该允许我设置选择器应该显示哪个广播扩展。

代码超级简单:

我希望选择器提供的扩展包标识符在哪里"com.milan.nosal.broadcast-extension"(我多次检查了它的正确性)。

但是,当点击控件时,首先弹出窗口显示空选择:

在此处输入图像描述

关闭它并再次点击控件后,它会显示正确的扩展名。这仅在安装(或重新安装)应用程序时发生,在它显示之后,它就会一直显示。

这是 iOS 12 测试版错误,还是我做错了什么?我可以“预注册”扩展来解决这个问题吗?

编辑:

发布应用程序后,我们的用户遇到了同样的问题,但这次甚至多次点击控件都没有帮助 - 选择器总是空的!看来扩展安装正确,因为它可以从控制中心启动。

现在正式发布运行。

0 投票
1 回答
158 浏览

ios - 来自 CMSampleBufferRef 的图像始终为白色

我正在尝试使用 startCaptureWithHandler 从 replaykit 中获取每一帧。

startCaptureWithHandler 返回一个 CMSampleBufferRef ,我需要将其转换为图像。

我使用这种方法转换为 UIImage 但它总是白色的。

谁能告诉我我哪里出错了?

0 投票
0 回答
957 浏览

ios - iOS 12:ReplayKit 坏了

我一直在使用 ReplayKit 进行所有过去的更新,但现在在 iOS 12 中,我的录音有时可以工作,有时不能......但通常它们不会。大多数情况下,当我停止录制时,我得到的是:

完全黑屏。

这在我之前没有发生过,这非常令人沮丧。这是我使用 ReplayKit 录制屏幕的方式:

当它工作时,所有的打印语句都被打印出来,但是当黑屏出现时,最后一个打印语句被“呈现”。

我绝对迫切需要一些帮助,因为我不知道如何解决这个问题。任何帮助将非常感激。

谢谢


编辑: 我刚刚意识到我正在使用“AVCaptureVideoPreviewLayer”,如果这可能是问题。如果是这样,解决方法是什么?

0 投票
4 回答
3198 浏览

swift - 录制因多任务处理和内容大小调整而中断

尝试使用 RPScreenRecorder 开始屏幕录制。我收到以下错误:

录制因多任务处理和内容大小调整而中断

在 iOS 12.0 之前一切正常。从更新中我得到了上面的错误。