5

有谁知道替换旧QTMovieCurrentSizeAttributeQTMovieSizeDidChangeNotification任务的正确方法?我正在尝试清除已弃用的旧代码。

我发现它QTMovieNaturalSizeDidChangeNotification不能替代QTMovieSizeDidChangeNotification. 同样QTMovieNaturalSizeAttribute不能替代QTMovieCurrentSizeAttribute. Natural Size指的是QTMovie的原生分辨率,而Current Size指的QTMovie是显示 a 的分辨率(这也可能是电影正在解码的分辨率,可以从原生调整大小)。例如,如果源是变形的或具有非方形像素,则NaturalCurrent Sizes 将不同。在 QuickTime 7 Player 的 Movie Inspector 窗口中很容易看到差异。

据我所知,QuickTime X 允许多个视图进入同QTMovie一个Current Size. (也许Current Size功能被移到了QTMovieView?或解码器查询?)任何人都可以向我推荐新方法的文档或示例代码吗?

任何已更新为显示Natural和的电影检查器窗口的示例代码Current ('Actual') Sizes,而不使用不推荐使用的代码,都是理想的。到目前为止,这一直非常令人困惑。

4

1 回答 1

0

这有用吗?http://opensource.apple.com/source/WebCore/WebCore-955.66/platform/graphics/mac/MediaPlayerPrivateQTKit.mm

IntSize MediaPlayerPrivate::naturalSize() const
{
    if (!metaDataAvailable())
        return IntSize();

    // In spite of the name of this method, return QTMovieNaturalSizeAttribute transformed by the 
    // initial movie scale because the spec says intrinsic size is:
    //
    //    ... the dimensions of the resource in CSS pixels after taking into account the resource's 
   //    dimensions, aspect ratio, clean aperture, resolution, and so forth, as defined for the 
   //    format used by the resource

    NSSize naturalSize = [[m_qtMovie.get() attributeForKey:QTMovieNaturalSizeAttribute] sizeValue];
    return IntSize(naturalSize.width * m_scaleFactor.width(), naturalSize.height * m_scaleFactor.height());
}
于 2011-12-30T00:02:29.963 回答