繁体   English   中英

如何使用iPhone屏幕创建前置摄像头“闪光”效果

[英]How to create front camera “flash” effect using the iPhone screen

我正在尝试使用iPhone 6s前置摄像头的闪光灯。 我在网上和Ap​​ple Docs上搜索过,但没有找到有关如何使用它的有用解释。 我目前正在制作定制的前置闪光灯相机,但我正在尝试使用Apple相机使用的官方相机。

这是我自定义闪存的代码:(它基本上是一个白色的UIView,显示一秒钟,我将手机的亮度设置为1)

var flashview: UIView!

在viewDidLoad中

    flashview = UIView(frame: CGRectMake(UIScreen.mainScreen().bounds.width/2, UIScreen.mainScreen().bounds.height/2, UIScreen.mainScreen().bounds.width, UIScreen.mainScreen().bounds.height))
    flashview.center = CGPointMake(self.view.bounds.width/2, self.view.bounds.height/2)
    flashview.backgroundColor = UIColor.whiteColor()
    flashview.alpha = 0.0
    flashview.layer.zPosition = 100
    self.view.addSubview(flashview) 

拍照时

UIScreen.mainScreen().brightness = CGFloat(1.0)
self.flashview.alpha = 1.0
sleep(1)
self.flashview.alpha = 0.9
sleep(1)
self.flashview.alpha = 0.0
UIScreen.mainScreen().brightness = CGFloat(0.5)

有没有办法使用官方Apple相机中使用的相同闪光灯?

任何时候你都想要使用sleep() ,拍打自己并意识到你在做错了。

你真的需要考虑使用动画 这使用了很好地优化(通过系统)定时,通过等待强制sleep()完成来阻止主线程(用户界面和其他东西)。

你的情况有点复杂,因为我不相信UIScreen的亮度是直接可动的。 这意味着您需要创建一个自定义的可动画属性 (可能称之为“flashLevel”或其他东西),这反过来会更新UIScreen的亮度以匹配。

你应该也注意到了用户的亮度等级第一 ,动画到最亮第二,然后在“最大亮度”阶段结束动画返回给用户的水平。 我知道这会激怒 ,如果一个应用程序拧我的屏幕亮度,并没有把它放回它的方式...

我最好的建议是阅读我链接的文档,尽力使其工作,然后更新您的问题以包括您尝试过的代码以及如果您无法弄清楚哪些代码无效。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM