当电影可编辑为10.7+时,电影控制器在QTMovieView中模糊不清

时间:2013-01-31 07:19:17

标签: macos osx-lion quicktime

当使用OS X 10.7或更高版本运行时,只要QTMovie可编辑,QTMovieView控制器中的光标区域就会变为全黑。因此,没有可见光标,并且未指示选择。在10.6.8或更早版本上运行的相同代码工作正常。如果未设置“editable”属性,则光标将按预期显示。

是的,我看过AVFoundation,但我需要处理QT可以处理的任何格式,这比AVFoundation支持的要多得多。

为了确保我没有在我的代码中引入一些东西,我从头开始,按照Apple Dev文档设置一个简单的可编辑电影视图,结果总是一样的。这是我跟随的例子:

https://developer.apple.com/library/mac/#documentation/Cocoa/Conceptual/QTKitApplicationTutorial/ExtendingMediaPlayerApplication/ExtendingMediaPlayerApplication.html#//apple_ref/doc/uid/TP40008155-CH5-SW1

此示例概述了使用QTKit设置基本应用程序并将QTMovieView放入窗口并加载要播放的影片文件,然后使其可编辑。为了使电影可编辑,我按照例子:

    - (BOOL)readFromURL:(NSURL *)absoluteURL ofType:(NSString *)typeName error:(NSError **)outError
    {
        QTMovie *newMovie = [QTMovie movieWithURL:absoluteURL error:outError];
        if (newMovie) {
            [newMovie setAttribute:[NSNumber numberWithBool:YES] forKey:QTMovieEditableAttribute];
            [self setMovie:newMovie];

        }
        return (newMovie != nil);
    }

要对此进行测试,注释掉setAttribute行会使光标可见,但当然视频不可编辑。

我尝试使用3.2.6到4.6的Xcode / Interface Builder版本,结果相同。我尝试过10.6,10.7和10.8 SDK。一个基于10.6.8构建的应用程序,10.6 SDK运行在10.7+上。播放很好,但它表现出控制器问题。使用较新的SDK构建不会改变这一点。这似乎是一个运行时问题。

未报告任何错误。

还有其他人看到这个吗?有没有已知的解决方法?我提出的唯一可能的解决方案是构建自定义控制器。

1 个答案:

答案 0 :(得分:0)

只要播放器播放时QTMovieEditableAttribute = NO,您就会看到滑块拇指。

电影不关心您更改属性的次数,只要在您尝试进行编辑时为“是”。

使用EDIT_ON和EDIT_OFF之类的#defines来设置QTMovieEditableAttribute更容易 - 我发现这有助于清楚地包括我的编辑代码......