Domanda

Sto usando AVFramework per catturare fotogrammi della telecamera e mi piacerebbe processo e li visualizza in un UIImageView ma sto avendo qualche problema. Ho il codice:

// Delegate routine that is called when a sample buffer was written
- (void)captureOutput:(AVCaptureOutput *)captureOutput didOutputSampleBuffer:(CMSampleBufferRef)sampleBuffer fromConnection:(AVCaptureConnection *)connection
{ 
    //NSLog(@"Capturing\n");
    // Create a UIImage from the sample buffer data
    UIImage *image = [self imageFromSampleBuffer:sampleBuffer];     

    NSLog(@"Image: %f %f\n", image.size.height, image.size.width);
    [imageView setImage:image];
}

Tuttavia, non sarà visualizzato. Gli spettacoli corrette dimensioni fino in NSLog, e quando ho messo:

[imageView setImage:[UIImage imageNamed:@"SomethingElse.png"]]; 

in viewDidLoad, l'immagine viene visualizzata correttamente (quindi so l'UIImageView è collegato correttamente).

C'è un motivo questo non dovrebbe funzionare ??? Sono ad una perdita in questo momento.

Saluti, Brett

È stato utile?

Soluzione

stai facendo questo sul thread principale? È possibile utilizzare la coda principale per il delegato (indesiderabili, perché si sta facendo di elaborazione prima) o:

dispatch_async(dispatch_get_main_queue(), ^{
    imageView.image = ...;
});

Altri suggerimenti

Is IMAGEVIEW impostato correttamente? Se ImageView è in realtà pari a zero, la chiamata a [imageView setImage:image]; silenziosamente fare nulla.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top