Simultane Anzeige beider Kameras (Bild in Bild)

  • Hallo Leute,
    ich stehe schon eine ganze Weile vor folgendem Problem:
    Es sollen beide Kameras, vorne und hinten, gleichzeitig angezeigt werden.


    Mein Ansatz war der, dass ich die Custom Camera App aus dem DevGuide (http://developer.android.com/g…camera.html#custom-camera ) nachgebaut habe und zur Anzeige 2 FrameLayouts benutze. Dazu dann jeweils 2 Camera und CameraPreview Objekte.


    Die App stürzt jedoch immer sofort ab.


    Ich benutze ein Asus Transformer Prime Tablet mit Android 4.0.3 und ein HTC Desire S mit Android 2.3.5.
    Auf letzterem funktioniert seltsamerweise nicht mal eine einfache Anzeige des Kamerabildes..


    Hat jemand Ideen wie man sonst noch vorgehen könnte?


    Grüße + Danke :)



    Hier mal mein Fehlerlog:

  • Was steht denn in deiner CameraPreview.java in Zeile 32?


    Wahrscheinlich sind da zwei oder drei Objekte und eins davon ist nicht initialisiert.


    Am besten nicht nur die Zeile sondern die wichtigen Teile der Klasse hier mal posten - am besten mit der Java-Formatierung (Kaffeetasse in der Icon-Leiste).

  • Ich poste hier einfach mal die Klasse (mehr oder weniger 1:1 aus der Android Camera API Doku entnommen).
    Der Fehler taucht in der surfaceCreated Methode auf, Zeile 32 ist hier 21: mCamera.setPreviewDisplay(holder);



    CameraPreview Klasse




    Mit einer Kamera geht alles wunderbar, bloß wenn ich versuche eine zweite zu starten bekomme ich Probleme :(


    Danke und Grüße

  • Dann schreib dir doch mal am Anfang der surfaceCreated ein paar Prüfungen rein:


    Java
    if (holder == null)
        Log.e(TAG, "holder ist NULL");
    if (mCamera == null)
        Log.e(TAG, "mCamera ist NULL");


    Dann weißt du wenigsten, wer null ist - und dann beginnt die Suche, warum das null ist - hast du da beim initialisieren der zweiten Kamera irgendwas neu gesetzt, so dass eine andere Variable dann null wird?


    Der SurfaceHolder muss "fully initialized" sein, schreibt die Doku zu Camera - hast du das auch gemacht?

  • Also, wie sich rausgestellt hat, ist mCamera = null.


    Der Fehler scheint (wieder in meiner Hauptactivity) hier zu liegen:


    Java
    mPreview = new CameraPreview(this, mCamera);
    	    	FrameLayout preview = (FrameLayout) findViewById(R.id.camera_preview);
    	    	preview.addView(mPreview);
    	    	
    	    	mPreviewFront = new CameraPreview(this, mCameraFront); //<------------------------- hier glaube ich
    	    	FrameLayout previewFront = (FrameLayout) findViewById(R.id.camera_preview_front);
    	    	previewFront.addView(mPreviewFront);


    Wenn ich 2 Kamera Objekte anlege und öffne, dann gibt es noch keine Fehler.

    Java
    camFront = Camera.open(1);
    camBack = Camera.open(0);


    Erst wenn ich dem Preview Fenster die Kamera zuweise, wie oben gezeigt, wird sie null..
    Danke aber schonmal für die Tipps zur Fehlersuche :)

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!