当我阅读Cocos2dx 3.0API时,我发现了这样的事情:
auto listener = [this](Event* event){
auto keyboardEvent = static_cast<EventKeyboard*>(event);
if (keyboardEvent->_isPressed)
{
if (onKeyPressed != nullptr)
onKeyPressed(keyboardEvent->_keyCode, event);
}
else
{
if (onKeyReleased != nullptr)
onKeyReleased(keyboardEvent->_keyCode, event);
}
};
Run Code Online (Sandbox Code Playgroud)
什么[this]意思?这是新的语法C++11吗?
我已经第一次将应用内购买应用到我的应用更新中,只是等了3周并因为以下原因拒绝了:
我们发现您的应用提供了可以恢复的应用内购买,但它不包含"恢复"功能,以允许用户恢复之前购买的应用内购买.要恢复以前购买的应用程序内购买产品,最好提供"恢复"按钮,并在点击"恢复"按钮时启动恢复过程.
现在我想在navbar我的桌子右侧(顶部)添加一个按钮,可以看到/点击应用程序购买并添加以下代码链接到按钮:
[[SKPaymentQueue defaultQueue] restoreCompletedTransactions];
Run Code Online (Sandbox Code Playgroud)
有人可以验证这是否正确并且很可能只需要所有这些?希望这次成功通过.提前致谢!
是a += 10和a = a + 10两者是一样的,还是它们之间有一些区别?我在学习Java作业时遇到了这个问题.
当我尝试使用应用程序加载器将应用程序上传到iTunes Connect时,我收到以下错误:
Apple的Web服务操作并不成功
无法验证包:(app id).itmsp
错误ITMS-9000:"无效的代码签名权利.您的应用程序包的签名包含iOS不支持的代码签名权利.具体而言,'Payload/brainademy.app/brainademy'中关键'aps-environment'的值'开发'是不支持." 在SoftwareAssets/SoftwareAsset(MZItmspSoftwareAssetPackage)
这已经发生了大约36个小时,Apple支持告诉我在30分钟内再试一次(这显然不起作用).
我正在使用Xcode和应用程序加载器的最新版本,我正在使用物理iPhone构建,并且我已将存档设置为release.当我点击Activity...一切正常,然后我看到:
错误ITMS-9000:"无效的代码签名权利......
然后一切正常,直到我看到
与iTunes Store通话时出错
我只能让我的CLLocationManager进行授权.(在ios8下迅速)我甚至添加了一个显式的requestAlwaysAuthorization调用(在ios7下我不需要使用objC)
func finishLaunch() {
//ask for authorization
let status = CLLocationManager.authorizationStatus()
if(status == CLAuthorizationStatus.NotDetermined) {
self.locationManager.requestAlwaysAuthorization();
}
else {
self.startMonitoring()
}
...
}
Run Code Online (Sandbox Code Playgroud)
回调永远不会得到任何东西,但NotDermined并没有向用户显示UIAlertView.
func locationManager(manager: CLLocationManager!, didChangeAuthorizationStatus status: CLAuthorizationStatus) {
if(status == CLAuthorizationStatus.NotDetermined) {
println("Auth status unkown still!");
}
self.startMonitoring()
}
Run Code Online (Sandbox Code Playgroud)
我做错了吗? - 对我来说感觉像个臭虫,但我想要一些反馈
我使用此代码在iOS自定义相机应用程序中实现Tap-to-Focus,但它无法正常工作.这是代码
override func touchesBegan(touches: NSSet, withEvent event: UIEvent) {
let touchPer = touches.anyObject() as UITouch
let screenSize = UIScreen.mainScreen().bounds.size
var focus_x = touchPer.locationInView(self.view).x / screenSize.width
var focus_y = touchPer.locationInView(self.view).y / screenSize.height
if let device = captureDevice {
if(device.lockForConfiguration(nil)) {
device.focusMode = AVCaptureFocusMode.ContinuousAutoFocus
device.focusPointOfInterest = CGPointMake(focus_x, focus_y)
device.exposureMode = AVCaptureExposureMode.ContinuousAutoExposure
device.unlockForConfiguration()
}
}
}
Run Code Online (Sandbox Code Playgroud) 我遇到了一个问题,我正试图在UIView边界内解决,有没有办法将相机预览添加到UIView?并在UIView(按钮,标签等)上添加其他内容?
我尝试使用AVFoundation Framework,但没有足够的Swift文档.
我正在尝试检查用户是否具有互联网连接,并且该过程的一部分涉及调用withUnsafePointer.在Swift 1.x中,我能够使用:
var zeroAddress = sockaddr_in(sin_len: 0, sin_family: 0, sin_port: 0, sin_addr: in_addr(s_addr: 0), sin_zero: (0, 0, 0, 0, 0, 0, 0, 0))
zeroAddress.sin_len = UInt8(sizeofValue(zeroAddress))
zeroAddress.sin_family = sa_family_t(AF_INET)
let defaultRouteReachability = withUnsafePointer(&zeroAddress){
SCNetworkReachabilityCreateWithAddress(nil, UnsafePointer($0)).takeRetainedValue()
}
Run Code Online (Sandbox Code Playgroud)
但是现在使用Swift 2,我收到一个错误说法
无法使用类型为'(inout sockaddr_in,(_) - > _)'的参数列表调用'withUnsafePointer'
我看了Xcode的用法,它是:

所以我尝试使用
withUnsafePointer(&zeroAddress) {(pointer: UnsafePointer<sockaddr_in>) -> sockaddr_in in
SCNetworkReachabilityCreateWithAddress(nil, pointer).takeRetainedValue()
}
Run Code Online (Sandbox Code Playgroud)
以及
withUnsafePointer(&zeroAddress) {(pointer: UnsafePointer<sockaddr_in>) -> AnyObject in
SCNetworkReachabilityCreateWithAddress(nil, pointer).takeRetainedValue()
}
Run Code Online (Sandbox Code Playgroud)
它们都会产生cannot invoke...编译时错误.withUnsafePointer在Swift 2.x中使用的正确方法是什么?
我正在尝试将CIFilter应用于AVAsset,然后在应用过滤器的情况下保存它.我这样做的方法是使用AVAssetExportSessionwith videoCompositionset设置为AVMutableVideoComposition具有自定义AVVideoCompositing类的对象.
我还将instructions我的AVMutableVideoComposition对象设置为自定义组合指令类(符合AVMutableVideoCompositionInstruction).这个类传递了一个跟踪ID,以及一些其他不重要的变量.
不幸的是,我遇到了一个问题 - startVideoCompositionRequest:我的自定义视频合成器类(符合AVVideoCompositing)中的函数没有被正确调用.
当我将passthroughTrackID自定义指令类的变量设置为轨道ID时,startVideoCompositionRequest(request)我的函数AVVideoCompositing不会被调用.
然而,当我没有设置passthroughTrackID我的自定义指令类的变量,将startVideoCompositionRequest(request) 被调用,但没有正确-打印request.sourceTrackIDs结果空数组,并request.sourceFrameByTrackID(trackID)导致零值.
我发现有趣的是,cancelAllPendingVideoCompositionRequests:在尝试使用过滤器导出视频时,该函数总是被调用两次.startVideoCompositionRequest:在startVideoCompositionRequest:未调用的情况下,它要么被调用一次,要么被调用一次,或者连续两次被调用.
我创建了三个用于导出带过滤器的视频的类.这是实用程序类,它基本上只包含一个export函数并调用所有必需的代码
class VideoFilterExport{
let asset: AVAsset
init(asset: AVAsset){
self.asset = asset
}
func export(toURL url: NSURL, callback: (url: NSURL?) -> Void){
guard let track: AVAssetTrack = self.asset.tracksWithMediaType(AVMediaTypeVideo).first else{callback(url: nil); return}
let composition …Run Code Online (Sandbox Code Playgroud) ios avcomposition avvideocomposition avassetexportsession swift
是否有任何快速,轻量级的方式应用于CIFilter视频?在提到它之前,我已经看过GPUImage - 它看起来像是非常强大的魔法代码,但它对我正在尝试做的事情来说真的太过分了.
基本上,我想
/tmp/myVideoFile.mp4CIFilter视频文件应用于此视频文件/tmp/anotherVideoFile.mp4我已经能够将CIFilter应用到一个非常容易和快速使用的视频中 AVPlayerItemVideoOutput
let player = AVPlayer(playerItem: AVPlayerItem(asset: video))
let output = AVPlayerItemVideoOutput(pixelBufferAttributes: nil)
player.currentItem?.addOutput(self.output)
player.play()
let displayLink = CADisplayLink(target: self, selector: #selector(self.displayLinkDidRefresh(_:)))
displayLink.addToRunLoop(NSRunLoop.mainRunLoop(), forMode: NSRunLoopCommonModes)
func displayLinkDidRefresh(link: CADisplayLink){
let itemTime = output.itemTimeForHostTime(CACurrentMediaTime())
if output.hasNewPixelBufferForItemTime(itemTime){
if let pixelBuffer = output.copyPixelBufferForItemTime(itemTime, itemTimeForDisplay: nil){
let image = CIImage(CVPixelBuffer: pixelBuffer)
// apply filters to image
// display image
}
}
}
Run Code Online (Sandbox Code Playgroud)
这个伟大的工程,但我一直有很多只是麻烦哪怕一丁点找出如何将过滤器应用到已保存的视频文件.有一个选项,基本上只是做我上面做的,使用AVPlayer,播放视频,并在播放时从每一帧获取像素缓冲区,但这不适用于后台视频处理.我不认为用户会喜欢等待他们的视频用于过滤器的应用. …