我正在从视频文件中逐个获取帧缓冲AVAssetReader,并对帧进行一些操作,然后使用AVAssetWritter.将新帧保存到临时文件.现在我有临时文件路径,其中所有新帧都是逐个保存的.有没有什么方法可以在时间帧播放视频时不断添加到临时文件?
这里是从临时路径播放视频的代码(帧不断添加)
- (void)loadAssetFromFile {
AVURLAsset *asset = [AVURLAsset URLAssetWithURL:[NSURL fileURLWithPath:[(mMediaReader.mCameraRecorder) tempVideoFilePath ]] options:nil];
NSString *tracksKey = @"tracks";
[asset loadValuesAsynchronouslyForKeys:[NSArray arrayWithObject:tracksKey] completionHandler:
^{
// Completion handler block.
dispatch_async(dispatch_get_main_queue(),
^{
NSError *error = nil;
AVKeyValueStatus status = [asset statusOfValueForKey:tracksKey error:&error];
if (status == AVKeyValueStatusLoaded) {
self.mPlayerItem = [AVPlayerItem playerItemWithAsset:asset];
[mPlayerItem addObserver:self forKeyPath:@"status"
options:0 context:&ItemStatusContext];
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(playerItemDidReachEnd:)
name:AVPlayerItemDidPlayToEndTimeNotification
object:mPlayerItem];
self.mPlayer = [AVPlayer playerWithPlayerItem:mPlayerItem];
[mPlayerView setPlayer:mPlayer];
[self play:nil];
}
else {
// You should deal with the …Run Code Online (Sandbox Code Playgroud) 我有NSManagedObject两个属性:
NSNumber *score;
NSDate *score_timestamp;
Run Code Online (Sandbox Code Playgroud)
我希望score_timestamp每次更新时都会更新我的字段score.
我显然不能使用-willSave方法,因为我的上下文偶尔score_timestamp会被保存,并且不会是最新的.因此,我应该覆盖-setScore:或设置我的托管对象作为其自己score字段的键值观察器.
该-setScore:解决方案似乎很容易:
- (void) setScore:(NSNumber *)score
{
[self willChangeValueForKey:@"score"];
[self setPrimitiveScore:score];
[self didChangeValueForKey:@"score"];
self.score_timestamp = [NSDate date];
}
Run Code Online (Sandbox Code Playgroud)
以这种方式做事有什么警告吗?或者我应该使用KVO解决方案?
更新
到目前为止,我收到了两个响应,我的代码无法通过setValue: forKey:,我还在等待示例.天真的召唤[(NSManagedObject *)myObject setValue:value forKey:@"score"]呼唤我的二传手.
因此,如果我切换到KVO解决方案,我应该addObserver:在所有awake方法中将其删除willTurnIntoFault吗?或者那不是那么简单?
我有一个应用程序,要求在部分透明的周围绘制一个纯黑色轮廓UIImage.不是在图像的框架周围,而是围绕图像本身的所有不透明部分.即,想到一个透明的PNG,上面有一个不透明的白色"X" - 我需要用黑色勾勒出"X".
为了使问题更棘手,在绘制轮廓之后,将调整原始图像的不透明度,但轮廓必须保持不透明 - 因此我生成的轮廓必须仅包括轮廓,而不包括原始图像.
我目前的技术是这样的:
UIView具有原始图像尺寸的新元素.UIImage4次并将重复项添加为子视图UIView,每个UIImage偏移量从原始位置沿对角线偏移几个像素.UIView转换为图像(通过典型UIGraphicsGetImageFromCurrentImageContext方法).CGImageMaskCreate和CGImageCreateWithMask从这个新图像中减去原始图像,只剩下轮廓.有用.即使只有4个偏移图像,结果看起来也很不错.然而,它的效率非常低,并且在iPhone 4上造成了4秒的良好稳定延迟.
所以我需要的是一个很好,快速,有效的方法来实现同样的东西,iOS 4.0完全支持.
有什么好主意吗?:)
请给我一个建议如何在我的屏幕截图中实现这种披露按钮 - 显示"点击下拉"按钮显示点击菜单:

我尝试了两种方法,使用NSPopupButton和NSButton使用披露样式和手动菜单显示:
NSPopupButton 继续显示默认值文本,无法在Interface Builder中调整为较小的大小.

NSButton显示一个菜单,但显然错位到我点击按钮的位置,而不是在底部边缘.我正在使用以下代码:
- (IBAction)handleShowMenu:(id)sender
{
[NSMenu popUpContextMenu:profileMenu
withEvent:[NSApp currentEvent]
forView:sender];
}
Run Code Online (Sandbox Code Playgroud)

那么显示这样一个菜单的正确方法是什么?
如何在屏幕截图中看到应用于整个视图的圆角(请注意,导航栏和键盘角都是圆角的)?
我试过设置cornerRadius = 10和masksToBounds = YES两个window.layer和window.rootViewController.view.layer,但只有仰视图边角圆润得到,导航栏仍然停留平方米.
更新.
设置cornerRadius为a window.layer实际上也会将圆角添加到顶部,但这些角在状态栏下不可见,除非cornerRadius大于20.

我需要使用以下格式要求打印浮点数:
5.12345 应该只显示 5.1
5.0应该只5(没有.0)
5.0176应该只显示5(没有.01)
我以为printf()可以做这样的事......但现在我似乎无法让它发挥作用.
在我的应用程序中,我使用该NSURLConnection方法加载JSON数据,如下所示:
NSURLRequest *request = [[NSURLRequest alloc] initWithURL:
[NSURL URLWithString:@"theurl"]];
NSURLConnection *theConnection = [[NSURLConnection alloc] initWithRequest:request
delegate:self];
[theConnection start];
Run Code Online (Sandbox Code Playgroud)
我在-didReceiveData:方法中接收并保存数据,但是如果我在服务器上更新我的JSON文件,NSURLConnection仍会向我提供旧的JSON,同时文件正确上传到服务器.只有当我从iPhone(或iPhone模拟器)中删除整个应用程序并重建应用程序时,它才会收到新的Json文件.
有谁知道这个问题的解决方案?
我是Android上的新开发人员,我希望使用sqlite在数据库中存储用户数据.对于那个设计.xml文件用户名为edittext和take按钮,在点击按钮后填充所有文本字段后,所有数据都存储在数据库中.并在屏幕上显示此数据.....
我需要进行编码和解码类型的财产NSUInteger有NSCoder.
使用方法NSCoder::encodeInteger:forKey:和NSCoder::decodeIntegerForKey:方法是否安全?
我想到的另一种方法是将无符号整数包装到NSNumber第一位.但这意味着更多的代码,我不喜欢它.
我一整天都在与正则表达式作斗争,找不到解决方案。我试图在包含数字、分号、冒号和空格的字符串中找到一些特定的数字。
出于我们的目的,假设我正在寻找号码1234
以下是一些应该匹配的示例(每行都是不同的字符串):
1234
;1234;
1234 : 5678
;1234,3321
Run Code Online (Sandbox Code Playgroud)
不应该匹配的示例(因为它是不同的数字):
;12345;
0123456
Run Code Online (Sandbox Code Playgroud)
我目前的尝试:
[^(0-9*)]1234[^(0-9*)]
Run Code Online (Sandbox Code Playgroud)
这是我的问题的 Regex Tester 的永久链接: Regex Tester fiddle