Probleme de redimensionnement pour QTTracks
Fred20
Membre
Bonjour
Je souhaite insérer la track video d'une QTMovie ([maVueVideo1 movieQT]) sur une autre QTmovie ([maVueVideo movieQT]). Sachant que les dimensions (taille) de ces 2 tracks sont différentes, je souhaite que la track à insérer soit de la dimension de la track de l'autre QTmovie qui va la recevoir.
Pour cela, j'ai fais :
NSSize movieSize = [[[maVueVideo movieQT] attributeForKey:@QTMovieNaturalSizeAttribute] sizeValue];
NSRect newPosition = NSMakeRect(0, 0,movieSize.width, movieSize.height);
// make sure the movie is editable
[[maVueVideo movieQT] setAttribute:[NSNumber numberWithBool:YES] forKey:QTMovieEditableAttribute];
NSArray* theTracks1 = [[maVueVideo1 movieQT] tracksOfMediaType:QTMediaTypeVideo];
QTTrack *maTrack1 = [theTracks1 objectAtIndex:0];
NSArray* theTracks0 = [[maVueVideo movieQT] tracksOfMediaType:QTMediaTypeVideo];
QTTrack *maTrack0 = [theTracks0 objectAtIndex:0];
NSValue *maValue = [maTrack0 attributeForKey:QTTrackBoundsAttribute];
//changer la taille de la video à insérer
NSSize s = [[maTrack1 attributeForKey:QTTrackDimensionsAttribute] sizeValue];
NSSize s0 = [[maTrack0 attributeForKey:QTTrackDimensionsAttribute]sizeValue];
NSRect r = [[maTrack1 attributeForKey:QTTrackBoundsAttribute] rectValue];
NSRect r0 = [[maTrack0 attributeForKey:QTTrackBoundsAttribute] rectValue];
[maTrack1 setAttribute:maValue forKey:QTTrackBoundsAttribute];
NSSize ss = [[maTrack1 attributeForKey:QTTrackDimensionsAttribute] sizeValue];
NSSize ss0 = [[maTrack0 attributeForKey:QTTrackDimensionsAttribute]sizeValue];
NSRect rr = [[maTrack1 attributeForKey:QTTrackBoundsAttribute] rectValue];
NSRect rr0 = [[maTrack0 attributeForKey:QTTrackBoundsAttribute] rectValue];
//position d'insertion
QTTime timeInsert = [[maVueVideo movieQT]duration];
timeInsert.timeValue = [[maVueVideo movieQT]currentTime].timeValue;
[[maVueVideo movieQT] insertSegmentOfTrack:maTrack1 timeRange:movieRange atTime:timeInsert];
NSArray* theTracks2 = [[maVueVideo movieQT] tracksOfMediaType:QTMediaTypeVideo];
J'obtiens bien un ajustement de la track à insérer en la testant avant et après la conversion, et après l'insertion, j'ai bien 2 tracks de mêmes dimensions.
Cependant, à l'affichage sur QTMovieView, les 2 tracks ont retrouvées leurs tailles d'origines
Comment faire ?
Merci d'avance
Connectez-vous ou Inscrivez-vous pour répondre.
Réponses
Après un gros travail d'essai je viens de trouver la solution : EN fait, la movie qui doit se superposer doit être redimmensionnée en proportion de la première
Voici mon code complet qui prend en compte ce redimmensionnement, sa transparence, la position de cette superposition sur la video de receptio et la valeur du QTTime de la video à superpositionner :
SI ça peut servir à quelqu'un
Merci pour ton retour.