2011-05-31 7 views
5

¿Alguien sabe la forma correcta de reemplazar las tareas antiguas QTMovieCurrentSizeAttribute y QTMovieSizeDidChangeNotification? Estoy tratando de limpiar el viejo código obsoleto.QTMovieCurrentSizeAttribute y QTMovieSizeDidChangeNotification reemplazos

He encontrado que QTMovieNaturalSizeDidChangeNotification no es un reemplazo para QTMovieSizeDidChangeNotification. Del mismo modo QTMovieNaturalSizeAttribute no es un reemplazo para QTMovieCurrentSizeAttribute. Natural Size se refiere a la resolución nativa de QTMovie, mientras que Current Size se refiere a la resolución en la que se muestra QTMovie (esta también puede ser la resolución a la que se decodifica la película, que puede cambiar el tamaño desde original). Por ejemplo, si la fuente era anamórfica o tenía píxeles no cuadrados, entonces Natural y Current Size s no serán lo mismo. La diferencia se ve fácilmente en la ventana Inspector de películas del QuickTime 7 Player.

Por lo que puedo decir, QuickTime X permite múltiples vistas en el mismo QTMovie, por lo que la noción de Current Size debe ser reemplazada por algo nuevo. (¿Quizás la funcionalidad Current Size se movió a QTMovieView? ¿O una consulta de decodificador?) ¿Alguien puede referirme a la documentación o código de muestra para la nueva forma?

Cualquier código de muestra de una ventana del Inspector de película que se haya actualizado para mostrar Natural y Current ('Actual') Sizes, sin utilizar el código obsoleto, sería ideal. Esto ha sido muy confuso de abordar, hasta ahora.

Respuesta

0

¿Es útil? 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()); 
} 
+0

Probablemente más relevante es la definición de 'cacheMovieScale' en el mismo archivo, que recibe un atributo indocumentado con la tecla' @ "QTMoviePreferredTransformAttribute" ', cuyo valor es un NSAffineTransform. –

Cuestiones relacionadas