在AVFoundation中有一种相对简单的循环视频方式吗?
我已经创建了我的AVPlayer和AVPlayerLayer:
avPlayer = [[AVPlayer playerWithURL:videoUrl] retain];
avPlayerLayer = [[AVPlayerLayer playerLayerWithPlayer:avPlayer] retain];
avPlayerLayer.frame = contentView.layer.bounds;
[contentView.layer addSublayer: avPlayerLayer];
Run Code Online (Sandbox Code Playgroud)
然后我播放我的视频:
[avPlayer play];
Run Code Online (Sandbox Code Playgroud)
视频播放正常但最后停止播放.使用MPMoviePlayerController,您只需将其repeatMode
属性设置为正确的值即可.AVPlayer似乎没有类似的属性.似乎没有一个回调可以告诉我什么时候电影结束所以我可以寻找开头并再次播放它.
我没有使用MPMoviePlayerController,因为它有一些严重的限制.我希望能够一次播放多个视频流.
我正在尝试估算与太空中QR码相关的设备位置.我正在使用ARKit和Vision框架,两者都在iOS11中引入,但这个问题的答案可能并不依赖于它们.
使用Vision框架,我能够获得在相机框架中限制QR码的矩形.我想将此矩形与从标准位置转换QR码所需的设备平移和旋转相匹配.
例如,如果我观察到框架:
* *
B
C
A
D
* *
Run Code Online (Sandbox Code Playgroud)
如果我距离QR码1米远,以它为中心,假设QR码的边长为10cm,我会看到:
* *
A0 B0
D0 C0
* *
Run Code Online (Sandbox Code Playgroud)
那两个帧之间的设备转换是什么?我知道确切的结果可能是不可能的,因为观察到的QR码可能是略微非平面的,我们试图估计一个不完美的东西上的仿射变换.
我想这sceneView.pointOfView?.camera?.projectionTransform
比sceneView.pointOfView?.camera?.projectionTransform?.camera.projectionMatrix
后者已经考虑了从ARKit推断的变换更有帮助我对此问题不感兴趣.
我该怎么做
func get transform(
qrCodeRectangle: VNBarcodeObservation,
cameraTransform: SCNMatrix4) {
// qrCodeRectangle.topLeft etc is the position in [0, 1] * [0, 1] of A0
// expected real world position of the QR code in a referential coordinate system
let a0 = SCNVector3(x: -0.05, y: 0.05, z: 1)
let b0 = SCNVector3(x: 0.05, y: 0.05, z: …
Run Code Online (Sandbox Code Playgroud) 我会正确的.我有一个UItextView
放置在我的视图中,当需要滚动查看所有文本时(当textView中存在大量文本时)textView有时会在文本的中间开始,而文本的底部则会在其他时间开始.
textView上未启用编辑.我需要一种方法来强制textView每次都从顶部开始.我看到一些问题,其他人使用内容偏移,但我真的不知道它是如何工作的,或者它是否适用于此处.
谢谢你的帮助.
我们有iPad和iPhone设备,但没有电线.有没有什么方法可以在iOS上通过Wi-Fi安装/调试构建?
我知道在Android中的方式,但不是iOS.
如何实现垂直平面检测(即墙壁)?
let configuration = ARWorldTrackingSessionConfiguration()
configuration.planeDetection = .horizontal //TODO
Run Code Online (Sandbox Code Playgroud) 我需要准确地将HSB转换为RGB,但我不知道如何解决将小数转换为整数而不进行舍入的问题.这是我在colorpicker库中使用的当前函数:
HSBToRGB = function (hsb) {
var rgb = { };
var h = Math.round(hsb.h);
var s = Math.round(hsb.s * 255 / 100);
var v = Math.round(hsb.b * 255 / 100);
if (s == 0) {
rgb.r = rgb.g = rgb.b = v;
} else {
var t1 = v;
var t2 = (255 - s) * v / 255;
var t3 = (t1 - t2) * (h % 60) / 60;
if (h == 360) h = 0;
if …
Run Code Online (Sandbox Code Playgroud) 我在位置(30,30,30)有一个SCNCamera,在位于(0,0,0)位置的对象上有一个SCNLookAtConstraint.我正在尝试使用A UIPanGestureRecognizer让相机围绕虚拟球体上的物体旋转,同时保持相机和物体之间的半径.我假设我应该使用四元数预测,但我在这方面的数学知识很糟糕.我知道的变量是x&y平移+我试图保留的半径.我在Swift中编写了这个项目,但Objective-C中的答案也同样被接受(希望使用标准的Cocoa Touch Framework).
哪里:
private var cubeView : SCNView!;
private var cubeScene : SCNScene!;
private var cameraNode : SCNNode!;
Run Code Online (Sandbox Code Playgroud)
这是我设置场景的代码:
// setup the SCNView
cubeView = SCNView(frame: CGRectMake(0, 0, self.width(), 175));
cubeView.autoenablesDefaultLighting = YES;
self.addSubview(cubeView);
// setup the scene
cubeScene = SCNScene();
cubeView.scene = cubeScene;
// setup the camera
let camera = SCNCamera();
camera.usesOrthographicProjection = YES;
camera.orthographicScale = 9;
camera.zNear = 0;
camera.zFar = 100;
cameraNode = SCNNode();
cameraNode.camera = camera;
cameraNode.position = SCNVector3Make(30, 30, 30)
cubeScene.rootNode.addChildNode(cameraNode)
// setup …
Run Code Online (Sandbox Code Playgroud) 我正在尝试将我的项目更新为Swift 3.0,但我遇到了一些困难.我得到了下一个错误:"转义闭包只能通过值明确捕获inout参数".
问题出在这个函数里面:
fileprivate func collectAllAvailable(_ storage: inout [T], nextUrl: String, completion: @escaping CollectAllAvailableCompletion) {
if let client = self.client {
let _ : T? = client.collectionItems(nextUrl) {
(resultCollection, error) -> Void in
guard error == nil else {
completion(nil, error)
return
}
guard let resultCollection = resultCollection, let results = resultCollection.results else {
completion(nil, NSError.unhandledError(ResultCollection.self))
return
}
storage += results // Error: Escaping closures can only capture inout parameters explicitly by value
if let nextUrlItr = resultCollection.links?.url(self.nextResourse) {
self.collectAllAvailable(&storage, …
Run Code Online (Sandbox Code Playgroud) 我正在创建一个 iOS 应用程序,我打算在 AR 中显示逼真/高质量的渲染。在试验这 3 个选项的同时,我仍然不确定我应该继续开发我的应用程序框架中的哪一个:SceneKit、RealityKit和Metal。
我读过 SceneKit 是建立在 Metal 之上的,但我不确定是否值得花时间/精力对任何自定义着色器进行编程,而不是使用 SceneKit 默认提供的功能。关于 RealityKit,我不需要它提供的任何动画或特殊效果,只需要照片级渲染方面。
三者中哪一个最适合开发 AR 和高质量模型渲染?