小编Jon*_*ett的帖子

你如何在Swift中循环AVPlayer?

简单的问题我似乎无法找到答案的原因.

你如何在Swift中循环AVPlayer?

numberOfLoops = -1仅适用于AVAudioPlayer

我确实需要它循环没有任何延迟/黑色闪光等.这就是为什么我没有使用MPMoviePlayerViewController.

谢谢你的帮助.

码:

    let url_1 = NSURL.fileURLWithPath(outputFilePath_1)

    let asset_1 = AVAsset.assetWithURL(url_1) as? AVAsset
    let playerItem_1 = AVPlayerItem(asset: asset_1)

    let player_1 = AVPlayer(playerItem: self.playerItem_1)

    let playerLayer_1 = AVPlayerLayer(player: self.player_1)

    playerLayer_1!.frame = self.view.frame

    self.view.layer.addSublayer(self.playerLayer_1)

    player_1!.play()
Run Code Online (Sandbox Code Playgroud)

ios swift

63
推荐指数
8
解决办法
4万
查看次数

将matrix_float4x4转换为xyz空间

我正在使用ARKit并试图将相机的位置作为旋转和(x,y,z)坐标在真实世界空间中.我所能得到的只是一个matrix_float4x4,我真的不明白,而且欧拉角只显示旋转.

这是我现在拥有的:

let transform =  sceneView.session.currentFrame?.camera.transform
let eulerAngles =  sceneView.session.currentFrame?.camera.eulerAngles
Run Code Online (Sandbox Code Playgroud)

这是我得到的输出:

eulerAngles: float3(-0.694798, -0.0866041, -1.68845)

transform: __C.simd_float4x4(columns: (float4(-0.171935, -0.762872, 0.623269, 0.0), float4(0.982865, -0.0901692, 0.160767, 0.0), float4(-0.0664447, 0.640231, 0.765304, 0.0), float4(0.0, 0.0, 0.0, 1.0)))
Run Code Online (Sandbox Code Playgroud)

有没有办法转换matrix_4x4,或者有更简单的方法来获取此信息?

谢谢!

swift3 arkit

13
推荐指数
3
解决办法
6165
查看次数

尽管恢复设置为 0,Cannon.js 物理还是太有弹性

我想模拟一些块掉落,但更像是没有任何弹性或橡胶性的木块。

但我找不到像这样的设置。我已将恢复设置为 0,但当物体碰撞时仍然存在大量反弹。

我已将 contactEquationRelaxation 设置为低值,因为否则事情似乎会泄气。

我将 contactEquationStiffness 设置得很低,因为否则一切都会互相碰撞一次然后飞走。

但感觉仍然不太对劲,就像一种材料吸收了大部分能量后掉落到地板上的重击声。

而且,即使几乎停止,多个物体彼此重叠也会弯曲很多。

这是我的代码,它是反应三纤维,但仍应具有与标准大炮相同的属性。

谢谢!

<Canvas > 
                    
            <Physics gravity={[0, -10, 0]} 
                     defaultContactMaterial={
                       {
                         friction: 0.5, 
                         restitution: 0, 
                         contactEquationStiffness: 6000,
                         contactEquationRelaxation: 0.000001
                        }}>

                  <Shelf position={[0, -5, 0]} rotation={[-Math.PI / 2, 0, 0]}  />

                  {boxes}

            </Physics>

            <Static />

 </Canvas>
Run Code Online (Sandbox Code Playgroud)

three.js cannon.js reactjs

7
推荐指数
0
解决办法
895
查看次数

在Swift中的AVCaptureSession中设置AVCaptureDevice的低帧速率

我正在尝试使用Swift中的AVCaptureDevice捕获时设置每秒10帧的帧速率.

我相信这是通过设置AVCaptureDevice的activeVideoMaxFrameDuration来实现的,但也许我这样做是错误的,并且有不同的方式.

这是我当前的代码,它运行时没有错误,但对预览或捕获的视频中的帧速率没有任何影响,它仍然显示为全动态.

    var devices = AVCaptureDevice.devicesWithMediaType(mediaType);
    var captureDevice: AVCaptureDevice = devices[0] as AVCaptureDevice;

    captureDevice.lockForConfiguration(&error)

    captureDevice.activeVideoMinFrameDuration = CMTimeMake(1,10)
    captureDevice.activeVideoMaxFrameDuration = CMTimeMake(1,10)

    captureDevice.unlockForConfiguration()
Run Code Online (Sandbox Code Playgroud)

我已经检查了AVCaptureDeviceFormat videoSupportedFrameRateRanges minFrameRate并且应该支持每秒10帧.

将CMTime更改为videoSupportedFrameRateRanges之外的某些内容会引发错误,因此我知道代码正在使用,它只是没有效果.

在此先感谢您的帮助

ios swift

6
推荐指数
1
解决办法
1408
查看次数

从 PHP 上传多个文件到 Amazon S3

有没有办法一次性上传多个文件,而不必为每个文件重新连接?

我使用 S3 作为我的 php 应用程序的存储,它需要存储大量(一次 100 个)的大多数小(约 10k)图像文件。目前我正在遍历它们并使用以下代码为每个单独上传:

$s3->putObjectFile($uploadFile, $bucketName, ($uploadFile), S3::ACL_PUBLIC_READ)
Run Code Online (Sandbox Code Playgroud)

这需要很长时间。对于 1.5 兆文件,大约一分钟。按照其他答案中的建议关闭 SSL 会减少到大约 40 秒,但这仍然很慢。

这是我当前的代码,使用适用于 PHP 的 Amazon S3 REST 实现

$s3 = new S3($awsAccessKey, $awsSecretKey, false);


function send_to_s3($s3, $bucketName, $uploadFile)

{

    $start = microtime(true);



// Check if our upload file exists
if (!file_exists($uploadFile) || !is_file($uploadFile))
    exit("\nERROR: No such file: $uploadFile\n\n");

// Check for CURL
if (!extension_loaded('curl') && !@dl(PHP_SHLIB_SUFFIX == 'so' ? 'curl.so' : 'php_curl.dll'))
    exit("\nERROR: CURL extension not loaded\n\n");



if ($s3->putObjectFile($uploadFile, $bucketName, ($uploadFile), …
Run Code Online (Sandbox Code Playgroud)

php amazon-s3 amazon-web-services

5
推荐指数
1
解决办法
9111
查看次数

VNDetectFaceRectanglesRequest 总是为偏航/俯仰/滚动返回 0

我正在尝试使用 Vision 框架获取图像中人脸的俯仰/偏航/滚动,但始终为所有值获取 0。图像应该很容易处理(主要是前瞻性肖像)。

我通过对它们使用 Amazon Rekognition 成功获得了这些值,因此图像本身不是问题。(我需要做一批大约 70,000 个,因此对它们使用 rekogniton 会变得昂贵且缓慢。)

这是请求代码:

let faceLandmarksRequest = VNDetectFaceRectanglesRequest(completionHandler: handleRectangles)

let requestHandler = VNImageRequestHandler(cgImage: cgImage!, orientation: CGImagePropertyOrientation.right ,options: [:])

do {
    try requestHandler.perform([faceLandmarksRequest])
} catch {
    print(error)
}
Run Code Online (Sandbox Code Playgroud)

这是处理程序代码:

func handleRectangles(request: VNRequest, errror: Error?) {

    guard let observations = request.results as? [VNFaceObservation] else {
        fatalError("unexpected result type!")
    }

    for face in observations {

        print("\(face.yaw))") // always zero

    }
}
Run Code Online (Sandbox Code Playgroud)

任何帮助表示赞赏:)

swift swift4

5
推荐指数
1
解决办法
404
查看次数

无法将 CIImage 保存到相机胶卷 - Swift 3

我正在尝试将过滤器应用于 CIImage,它是从 AVCaptureSession 的像素缓冲区创建的,然后将其保存到相机胶卷。

这是我的代码

        let image = CIImage(cvPixelBuffer: pixelBuffer)

        let filter = CIFilter(name: "CISepiaTone")
        filter?.setValue(image, forKey: kCIInputImageKey)
        filter?.setValue(0.1, forKey: kCIInputIntensityKey)

        let newImage = UIImage(ciImage: (filter?.outputImage)!)

        print ("new image: \(newImage)")

        UIImageWriteToSavedPhotosAlbum(newImage, self,    #selector(image(_:didFinishSavingWithError:contextInfo:)), nil)
Run Code Online (Sandbox Code Playgroud)

这不会引发任何错误,并且当 image(_:didFinishSavingWithError:contextInfo:) 被调用时它没有错误

但是图像没有出现在我的库中。非常混淆!任何帮助表示赞赏。

谢谢。

cocoa-touch ios swift swift3

2
推荐指数
1
解决办法
1491
查看次数

画一条线,就像橡皮擦 Swift3

我正在制作一个简单的绘图程序,在 UIView 中绘制一些线条(下面代码中的画布)。这工作正常。

现在我希望能够像橡皮擦一样擦掉这些线条。

我不只是想在它上面绘制白色,因为画布视图后面有一个用户可以更改的背景图像,因此将背景图像绘制到视图中也不起作用,因为他们可以在绘制过程中进行更改。

如何在所有现有路径上绘制一条像橡皮擦一样的路径?

这是我当前的绘图代码

func drawLine(fromPoint start: CGPoint, toPoint end:CGPoint, color: UIColor, width: CGFloat, canvas: UIView) 
{
    let line = CAShapeLayer()
    let linePath = UIBezierPath()

    linePath.move(to: start)
    linePath.addLine(to: end)

    line.path = linePath.cgPath
    line.strokeColor = color.cgColor
    line.lineWidth = width
    line.lineJoin = kCALineJoinRound

    canvas.layer.addSublayer(line)
}
Run Code Online (Sandbox Code Playgroud)

谢谢!

swift swift3

2
推荐指数
1
解决办法
1276
查看次数

UIViewcontroller作为子视图未获得触摸事件

我试图将一个UIViewController添加到另一个UIViewController,然后在其上有一个UIGestureRecogniser。这是一个坏主意吗?我似乎根本没有接收到子ViewController的触摸事件。我可以启用它们吗,或者这只是愚蠢的做法?

码:

在主ViewController上

let slider = SliderViewController()

slider.view.frame = CGRect(x: 0, y: 100, width: self.view.frame.size.width, height: self.view.frame.size.height/4)

self.view.addSubview(slider.view)

slider.view.isUserInteractionEnabled = true // doesnt seem to make any difference
Run Code Online (Sandbox Code Playgroud)

并在SliderViewController上

override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) {

    print("touches began") // never gets called

}
Run Code Online (Sandbox Code Playgroud)

如果我提出

self.present(slider, animated: true, completion: nil)
Run Code Online (Sandbox Code Playgroud)

而不是添加为子视图,它可以正常工作。

ios swift

1
推荐指数
1
解决办法
1509
查看次数

自定义VOIP应用程序的iPhone Callkit呼叫屏幕

我正在使用新的CallKit框架来使用系统UI接收传入的VOIP呼叫。

是否可以在系统调用屏幕上添加自定义信息,例如照片或其他文字/新的UIView?

还是可以建立自己的呼叫屏幕并以相同方式显示?

谢谢

iphone voip ios callkit

1
推荐指数
1
解决办法
1686
查看次数