2017-06-29 6 views
0

Ich mache ein Video aus Screenshots. Ich habe versucht, Gespräche zu machen.SequenceEncoder encodeImage gibt einen Fehler zurück

Hier initialisierte ich meinen Encoder.

String filename = "video.mp4"; 
File file = new File(getFilesDir(), filename); 
enc = new SequenceEncoder(file); 

Dies wird ein Screenshots.

public Bitmap getScreenShot() { 
    View screenView = findViewById(R.id.rootLayout); 
    screenView.setDrawingCacheEnabled(true); 
    //Bitmap bitmap = Bitmap.createBitmap(screenView.getDrawingCache()); 
    Bitmap bitmap = screenView.getDrawingCache(); 
    screenView.setDrawingCacheEnabled(false); 
    return bitmap; 
} 

Dies ist, wie ich Bild codiert. und es gibt eine Ausnahme zurück.

enc.encodeImage(getScreenShot()); 

java.lang.NullPointerException: Der Versuch, virtuelle Methode 'int org.jcodec.common.model.Picture.getWidth()' auf ein Null-Objekt Verweis aufrufen

+0

Testen Sie 'getScreenShot()', dass es ein gültiges Bild und nicht null zurückgibt? –

Antwort

0

Das Problem war, dass ich gefragt ein Screenshot meines Layouts zur falschen Zeit, also gibt getScreenShot() eine Null-Bitmap zurück.

Ich löste es, indem ich es on onWindowFocusChanged anstelle onCreate aufrufen.

Verwandte Themen