QTMovieCurrentSizeAttribute and QTMovieSizeDidChangeNotifica



有人知道替换旧的QTMovieCurrentSizeAttributeQTMovieSizeDidChangeNotification任务的正确方法吗?我正在尝试清除旧的不推荐使用的代码。

我发现QTMovieNaturalSizeDidChangeNotification不能代替QTMovieSizeDidChangeNotification。同样地,QTMovieNaturalSizeAttribute不是QTMovieCurrentSizeAttribute的替代品。Natural Size指的是QTMovie的本机分辨率,而Current Size指的是显示QTMovie的分辨率(这也可能是解码电影的分辨率,可以从本机调整大小)。例如,如果源是变形的或具有非正方形像素,则NaturalCurrent Sizes将不相同。在QuickTime7播放器的"影片检查器"窗口中可以很容易地看到差异。

据我所知,QuickTime X允许多个视图进入同一个QTMovie,因此Current Size的概念需要用新的东西来取代。(也许Current Size功能被转移到了QTMovieView?或者解码器查询?)有人能向我介绍一下新方法的文档或示例代码吗?

任何已更新为显示NaturalCurrent ('Actual') Sizes的Movie Inspector窗口的示例代码(不使用不推荐使用的代码)都是理想的。到目前为止,这一直是一个令人困惑的问题。

这有用吗?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());
}

相关内容

  • 没有找到相关文章