小编iHu*_*ter的帖子

使用AVPlayer播放视频

我正在从视频文件中逐个获取帧缓冲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)

iphone ios avplayer

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

自动更新NSManagedObject属性修改时间戳

我有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吗?或者那不是那么简单?

core-data objective-c key-value-observing nsmanagedobject

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

iOS:概述部分透明图像的不透明部分

我有一个应用程序,要求在部分透明的周围绘制一个纯黑色轮廓UIImage.不是在图像的框架周围,而是围绕图像本身的所有不透明部分.即,想到一个透明的PNG,上面有一个不透明的白色"X" - 我需要用黑色勾勒出"X".

为了使问题更棘手,在绘制轮廓之后,将调整原始图像的不透明度,但轮廓必须保持不透明 - 因此我生成的轮廓必须包括轮廓,而不包括原始图像.

我目前的技术是这样的:

  • 创建一个UIView具有原始图像尺寸的新元素.
  • 复制UIImage4次并将重复项添加为子视图UIView,每个UIImage偏移量从原始位置沿对角线偏移几个像素.
  • 将其UIView转换为图像(通过典型UIGraphicsGetImageFromCurrentImageContext方法).
  • 使用CGImageMaskCreateCGImageCreateWithMask从这个新图像中减去原始图像,只剩下轮廓.

有用.即使只有4个偏移图像,结果看起来也很不错.然而,它的效率非常低,并且在iPhone 4上造成了4秒的良好稳定延迟.

所以我需要的是一个很好,快速,有效的方法来实现同样的东西,iOS 4.0完全支持.

有什么好主意吗?:)

graphics image-processing uiimage ios

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

显示菜单的披露按钮

请给我一个建议如何在我的屏幕截图中实现这种披露按钮 - 显示"点击下拉"按钮显示点击菜单:

我想要什么

我尝试了两种方法,使用NSPopupButtonNSButton使用披露样式和手动菜单显示:

  • NSPopupButton 继续显示默认值文本,无法在Interface Builder中调整为较小的大小.

    NSPopupButton

  • NSButton显示一个菜单,但显然错位到我点击按钮的位置,而不是在底部边缘.我正在使用以下代码:

    - (IBAction)handleShowMenu:(id)sender
    {
        [NSMenu popUpContextMenu:profileMenu
                       withEvent:[NSApp currentEvent]
                         forView:sender];
    }
    
    Run Code Online (Sandbox Code Playgroud)

    NSButton带菜单

那么显示这样一个菜单的正确方法是什么?

macos objective-c nsmenu appkit nsbutton

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

为整个应用程序应用圆角

如何在屏幕截图中看到应用于整个视图的圆角(请注意,导航栏和键盘角都是圆角的)?

我试过设置cornerRadius = 10masksToBounds = YES两个window.layerwindow.rootViewController.view.layer,但只有仰视图边角圆润得到,导航栏仍然停留平方米.

更新. 设置cornerRadius为a window.layer实际上也会将圆角添加到顶部,但这些角在状态栏下不可见,除非cornerRadius大于20.

例

core-graphics calayer ios

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

让printf()删除值为".0"的值

我需要使用以下格式要求打印浮点数:

  • 5.12345 应该只显示 5.1

  • 5.0应该只5(没有.0)

  • 5.0176应该只显示5(没有.01)

我以为printf()可以做这样的事......但现在我似乎无法让它发挥作用.

c printf

5
推荐指数
2
解决办法
2万
查看次数

NSURLConnection正在返回旧数据

在我的应用程序中,我使用该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文件.

有谁知道这个问题的解决方案?

nsurlconnection ios

5
推荐指数
2
解决办法
4968
查看次数

如何将edittext中的数据存储到android sqlite数据库?

我是Android上的新开发人员,我希望使用sqlite在数据库中存储用户数据.对于那个设计.xml文件用户名为edittext和take按钮,在点击按钮后填充所有文本字段后,所有数据都存储在数据库中.并在屏幕上显示此数据.....

sqlite android android-edittext

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

我可以使用NSCoder :: encodeInteger:forKey:和decodeIntegerForKey:参数类型为NSUInteger的方法吗?

我需要进行编码和解码类型的财产NSUIntegerNSCoder.

使用方法NSCoder::encodeInteger:forKey:NSCoder::decodeIntegerForKey:方法是否安全?

我想到的另一种方法是将无符号整数包装到NSNumber第一位.但这意味着更多的代码,我不喜欢它.

objective-c primitive-types nsinteger nsuinteger nscoder

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

正则表达式 - 查找字符串中的特定数字

我一整天都在与正则表达式作斗争,找不到解决方案。我试图在包含数字、分号、冒号和空格的字符串中找到一些特定的数字。

出于我们的目的,假设我正在寻找号码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

regex mysql

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