问题标签 [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.
swift - 使用 CVPixelBuffer 创建 RTCVideoframe
在创建 RTCVideoframe 时需要帮助
这是 RTCVideoframe 的 init 方法
RTCVideoFrame(buffer: RTCVideoFrameBuffer, rotation: RTCVideoRotation, timeStampNs: Int64)
我能够将输入缓冲区作为 CVPixelBuffer
我怎样才能转换CVpixelBuffer
为RTCVideoFrameBuffer
.
谢谢,非常感谢任何帮助
ios - 如何控制从控制器中心启动的上传扩展?
我实现了上传扩展并设置了 RTMP 服务器以通过上传扩展进行广播。广播是从控制中心发起的,而不是通过 SetupUI 扩展。由于 SampleHandler.m 不提供 RPBroadcastController,我无法以编程方式暂停或停止广播。我想至少停止广播并显示服务器不可用的错误消息。我浏览了所有 WWDC 文档,但找不到太多信息。Mobcrush 显示“未登录”之类的错误消息,他们是如何做到的?
ios - “存储” CMSampleBuffer 或 CVPixelBuffer 以供以后使用的正确方法
目前正在处理Replay Kit
上传扩展和 RTMP 流。Replay Kit
效果很好,但它只CMSampleBufferRef
在屏幕上有任何变化时提供,所以如果用户停留在屏幕上并且没有任何动作,它会停止提供CMSampleBufferRef
. 我将其转换CMSampleBufferRef
为CVPixelBufferRef
然后推送到 RTMP。这是问题所在。我需要继续推送最新的 CMSampleBufferRef,以防回复工具包不再提供 SampleBufferRef。
我尝试了许多不同的方法来“存储” SampleBufferRef
orCVPixelBufferRef
但到目前为止还没有运气。
我可能不理解 bufferRef 和内存相关东西的概念。
ios - ReplayKit – 使用内部音频录制屏幕视频
最近在做一个项目时,我需要用 App 音频和麦克风音频录制系统屏幕。
我尝试了以下解决方案。
- 借助 Replay kit 及其函数 startRecording
调用函数之前
问题是视频记录并保存到相机胶卷,但保存的视频中既没有 App Audio 也没有 Mic Audio Records
然后我尝试了 Replay Kit 的 screenCapture 功能。代码如下
请建议我做错了什么。
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 中)。
你能告诉我一个提示吗?对于任何反馈,我们都表示感谢!
感谢您阅读我关于编码的第一个问题。
ios - Replaykit,startCaptureWithHandler() 未在 captureHandler 中发送 Video 类型的 CMSampleBufferRef
我已经实现了一个RPScreenRecorder
,它记录屏幕和麦克风音频。完成多个录制后,我停止录制并将音频与视频AVMutableComposition
合并,然后合并所有视频以形成单个视频。
对于屏幕录制和获取视频和音频文件,我正在使用
用于停止录制。我调用这个函数:
这些都很直截了当。
大多数时候效果很好,我会收到视频和音频 CMSampleBuffers。但有时它startCaptureWithHandler
只会发送给我音频缓冲区而不是视频缓冲区。
一旦我遇到这个问题,直到我重新启动设备并重新安装应用程序才会解决。这使得我的应用程序对用户来说非常不可靠。我认为这是一个重播工具包问题,但无法与其他开发人员发现相关问题。让我知道你们中是否有人遇到这个问题并得到了解决方案。
我检查了多次,但没有发现配置有任何问题。但无论如何,它就在这里。
startCaptureWithHandler 函数也具有非常简单的功能:
此外,当这种情况发生时,系统屏幕录像机也会损坏。单击系统记录器时,会显示此错误:
错误提示“屏幕录制已停止,原因是:由于 Mediaservices 错误导致录制失败”。
应该有两个原因:
- iOS Replay 套件处于测试阶段,这就是为什么它在使用后有时会出现问题。
- 我已经实现了任何有问题的逻辑,这会导致 replaykit 崩溃。
如果是问题没有。1,那就没问题了。如果这是问题号。2 那么我必须知道我可能错在哪里?
意见和帮助将不胜感激。
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 中的新类可能会导致这样的问题。
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 推荐的直播流媒体的唯一选择吗?
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:
swift - ReplayKit:RPScreenRecorder.shared().startCapture() 不工作
ReplayKit
最近真的让我很沮丧。由于某些原因
当我调用它时实际上不起作用,因为我在其中有一个print()
语句并且它从未被调用过。
我的代码ViewController
是:
打印“这里”,但不打印“记录”
[ps 很抱歉代码格式错误,我相信你会理解 :)]
我也尝试了另一种方法:
并停止录制...
当我调用 recorder.stopRecording() 函数时,此方法不会停止,永远不会调用“停止录制”。
有人可以帮我吗,因为这真的让我很沮丧,你怎么能正确ReplayKit
地在 iOS 11 中记录你的屏幕?我在互联网上搜索过,没有一种方法对我有用,我不知道为什么。PS 我的 Info.plist 中有必要的权限密钥。
谢谢