IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Android Discussion :

Camera et onDraw


Sujet :

Android

  1. #1
    Modérateur
    Avatar de ToTo13
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Janvier 2006
    Messages
    5 793
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Santé

    Informations forums :
    Inscription : Janvier 2006
    Messages : 5 793
    Points : 9 860
    Points
    9 860
    Par défaut Camera et onDraw
    Bonjour,

    je fais un projet android dans lequel je dois afficher le rendu de la caméra ET des informations complémentaires.
    J'arrive très bien à afficher le contenu de la caméra, mais je n'arrive/sais pas comment utiliser la méthode onDraw pour afficher des informations par dessus (type réalité augmentée).

    Voici mon code, si quelqu'un pouvait me donner des indications, ce serait très sympa de sa part.
    Code java : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
     
    public class CameraPreview extends Activity
    {
     
    private Preview mPreview = null ;
     
     
    /** Called when the activity is first created.*/
    public void onCreate(Bundle savedInstanceState)
    	{
    	super.onCreate(savedInstanceState) ;
     
    	requestWindowFeature(Window.FEATURE_NO_TITLE) ; // Hide the window title.
     
    	mPreview = new Preview(this) ; // Create our Preview view and set it as the content of our activity.
     
    	setContentView(mPreview) ;
    	}
     
    }
     
     
     
    class Preview extends SurfaceView implements SurfaceHolder.Callback
    {
     
    SurfaceHolder mHolder;
    Camera mCamera;
     
     
    public Preview(Context context)
    	{
    	super(context);
    	// Install a SurfaceHolder.Callback so we get notified when the underlying surface is created and destroyed.
    	mHolder = getHolder();
    	mHolder.addCallback(this);
    	mHolder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS);
     
    	try	{
    		// ... Initialisations ...
    		}
    	catch ( Error E )
    		{
    		System.exit(0) ;
    		}
    	catch ( Exception E )
    		{
    		System.exit(0) ;
    		}
     
    	Log.i("Start", "Start Camera Preview") ;
    	}
     
    private int nb = 0 ;
    public void surfaceCreated(SurfaceHolder holder)
    	{ // The Surface has been created, acquire the camera and tell it where to draw.
    	mCamera = Camera.open();
     
    	mCamera.setPreviewCallback(
    		new PreviewCallback()
    			{
    			public void onPreviewFrame(byte[] data, Camera camera)
    				{ // On utilise cette méthode pour récupérer l'image de la caméra et ainsi travailler dessus.
    				Camera.Parameters parameters = camera.getParameters() ;
    				int height = parameters.getPreviewSize().height ;
    				int width = parameters.getPreviewSize().width ;
     
    				//... Traitement de ma vidéo ...
     
    				invalidate() ;
    				}
     
    			}
    		) ;
     
    	try	{
    		mCamera.setPreviewDisplay(holder);
    		}
    	catch (Exception exception)
    		{
    		mCamera.release();
    		mCamera = null;
    		}
    	}
     
     
    private Paint circlePaint = new Paint(Paint.ANTI_ALIAS_FLAG); // Lisser les formes
     
    protected void onDraw(Canvas canvas)
    	{ // Pour l'instant j'essaie juste d'afficher un cercle sur ma vidéo.
    	super.onDraw(canvas) ;
    	canvas.drawColor(Color.WHITE) ;
    	int centerX = getMeasuredWidth() / 2 ;
    	int centerY = getMeasuredHeight() / 2 ;
     
    	// On détermine le diamètre du cercle (arrière plan de la boussole)
    	int radius = Math.min(centerX, centerY);
     
    	// On dessine un cercle avec le " pinceau " circlePaint
    	canvas.drawCircle(centerX, centerY, radius, circlePaint) ;
    	}
     
     
    public void surfaceDestroyed(SurfaceHolder holder)
    	{
    	// Surface will be destroyed when we return, so stop the preview.
    	// Because the CameraDevice object is not a shared resource, it's very important to release it when the activity is paused.
    	mCamera.stopPreview();
    	mCamera.release();
    	mCamera = null;
    	}
     
     
    private Size getOptimalPreviewSize(List<Size> sizes, int w, int h)
    	{
    	final double ASPECT_TOLERANCE = 0.05;
    	double targetRatio = (double) w / h;
    	if (sizes == null) return null;
     
    	Size optimalSize = null;
    	double minDiff = Double.MAX_VALUE;
     
    	int targetHeight = h;
     
    	// Try to find an size match aspect ratio and size
    	for (Size size : sizes)
    		{
    		double ratio = (double) size.width / size.height;
    		if (Math.abs(ratio - targetRatio) > ASPECT_TOLERANCE) continue;
    		if (Math.abs(size.height - targetHeight) < minDiff)
    			{
    			optimalSize = size;
    			minDiff = Math.abs(size.height - targetHeight);
    			}
    		}
     
    	// Cannot find the one match the aspect ratio, ignore the requirement
    	if (optimalSize == null)
    		{
    		minDiff = Double.MAX_VALUE;
    		for (Size size : sizes)
    			{
    			if (Math.abs(size.height - targetHeight) < minDiff)
    				{
    				optimalSize = size;
    				minDiff = Math.abs(size.height - targetHeight);
    				}
    			}
    		}
    	return optimalSize;
    	}
     
     
    public void surfaceChanged(SurfaceHolder holder, int format, int w, int h)
    	{
    	// Now that the size is known, set up the camera parameters and begin the preview.
    	Camera.Parameters parameters = mCamera.getParameters() ;
     
    	List<Size> sizes = parameters.getSupportedPreviewSizes() ;
    	Size optimalSize = getOptimalPreviewSize(sizes, w, h) ;
    	parameters.setPreviewSize(optimalSize.width, optimalSize.height) ;
     
    	mCamera.setParameters(parameters) ;
    	mCamera.startPreview() ;
    	}
    }

    Merci par avance...
    Consignes aux jeunes padawans : une image vaut 1000 mots !
    - Dans ton message respecter tu dois : les règles de rédaction et du forum, prévisualiser, relire et corriger TOUTES les FAUTES (frappes, sms, d'aurteaugrafe, mettre les ACCENTS et les BALISES) => ECRIRE clairement et en Français tu DOIS.
    - Le côté obscur je sens dans le MP => Tous tes MPs je détruirai et la réponse tu n'auras si en privé tu veux que je t'enseigne.(Lis donc ceci)
    - ton poste tu dois marquer quand la bonne réponse tu as obtenu.

  2. #2
    Rédacteur
    Avatar de MrDuChnok
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2002
    Messages
    2 112
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Juin 2002
    Messages : 2 112
    Points : 4 240
    Points
    4 240
    Par défaut
    Salut,

    Une des astuce pour faire ce dont tu as besoin est par exemple :
    Ta fenêtre principale contient un "FrameLayout".
    Tu ajoutes deux composants à ce FrameLayout. Les deux composant vont alors se superposer.
    Sur le composant du fond, tu affiches le résultat de la capture vidéo (preview).
    Et sur le composant au dessus, tu dessines ce que tu souhaites afficher en surimpression de ta caméra.

    Si tu as des difficultés pour la mise en place d'un tel code, n'hésites pas, je pourrais essayer de te fournir un exemple.
    Si vous jugez mon post utile dans la résolution de votre problème, n'hésitez pas à utiliser le système de vote afin d'améliorer la qualité du forum

  3. #3
    Modérateur
    Avatar de ToTo13
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Janvier 2006
    Messages
    5 793
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Santé

    Informations forums :
    Inscription : Janvier 2006
    Messages : 5 793
    Points : 9 860
    Points
    9 860
    Par défaut
    Merci pour cette réponse si rapide.

    Citation Envoyé par MrDuChnok Voir le message
    Si tu as des difficultés pour la mise en place d'un tel code, n'hésites pas, je pourrais essayer de te fournir un exemple.
    TRES volontier !!!
    J'avoue que j'en suis à mes balbutiements sur Android et la majorité des concepts sont encore flous.
    Consignes aux jeunes padawans : une image vaut 1000 mots !
    - Dans ton message respecter tu dois : les règles de rédaction et du forum, prévisualiser, relire et corriger TOUTES les FAUTES (frappes, sms, d'aurteaugrafe, mettre les ACCENTS et les BALISES) => ECRIRE clairement et en Français tu DOIS.
    - Le côté obscur je sens dans le MP => Tous tes MPs je détruirai et la réponse tu n'auras si en privé tu veux que je t'enseigne.(Lis donc ceci)
    - ton poste tu dois marquer quand la bonne réponse tu as obtenu.

  4. #4
    Rédacteur
    Avatar de MrDuChnok
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2002
    Messages
    2 112
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Juin 2002
    Messages : 2 112
    Points : 4 240
    Points
    4 240
    Par défaut
    Si je reprend un peu ton code, ça pourrait ressembler à quelques choses comme ça :

    Citation Envoyé par ToTo13 Voir le message


    Code java : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    173
    174
    175
    176
    177
    178
    179
    180
     
    public class CameraPreview extends Activity
    {
     
    private Preview mPreview = null ;
     
     
    /** Called when the activity is first created.*/
    public void onCreate(Bundle savedInstanceState)
    	{
    	super.onCreate(savedInstanceState) ;
     
    	requestWindowFeature(Window.FEATURE_NO_TITLE) ; // Hide the window title.
     
            final FrameLayout frameLayout = new FrameLayout(this);
     
            mPreview = new Preview(this) ; // Create our Preview view and set it as the content of our activity.
            final DrawingView drawingView = new DrawingView(this);
    	frameLayout.addView(mPreview);
     
    	frameLayout.addView(drawingView);
    	setContentView(frameLayout);
     
    	}
     
    }
     
    class DrawingView extends View {
    private Paint circlePaint = new Paint(Paint.ANTI_ALIAS_FLAG); // Lisser les formes
        public DrawingView(Context context) {
    			super(context);
     
    		}
     
     
     
    protected void onDraw(Canvas canvas)
    	{ // Pour l'instant j'essaie juste d'afficher un cercle sur ma vidéo.
    	super.onDraw(canvas) ;
    	canvas.drawColor(Color.WHITE) ;
    	int centerX = getMeasuredWidth() / 2 ;
    	int centerY = getMeasuredHeight() / 2 ;
     
    	// On détermine le diamètre du cercle (arrière plan de la boussole)
    	int radius = Math.min(centerX, centerY);
     
    	// On dessine un cercle avec le " pinceau " circlePaint
    	canvas.drawCircle(centerX, centerY, radius, circlePaint) ;
    	}
     
    }
     
    class Preview extends SurfaceView implements SurfaceHolder.Callback
    {
     
    SurfaceHolder mHolder;
    Camera mCamera;
     
     
    public Preview(Context context)
    	{
    	super(context);
    	// Install a SurfaceHolder.Callback so we get notified when the underlying surface is created and destroyed.
    	mHolder = getHolder();
    	mHolder.addCallback(this);
    	mHolder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS);
     
    	try	{
    		// ... Initialisations ...
    		}
    	catch ( Error E )
    		{
    		System.exit(0) ;
    		}
    	catch ( Exception E )
    		{
    		System.exit(0) ;
    		}
     
    	Log.i("Start", "Start Camera Preview") ;
    	}
     
    private int nb = 0 ;
    public void surfaceCreated(SurfaceHolder holder)
    	{ // The Surface has been created, acquire the camera and tell it where to draw.
    	mCamera = Camera.open();
     
    	mCamera.setPreviewCallback(
    		new PreviewCallback()
    			{
    			public void onPreviewFrame(byte[] data, Camera camera)
    				{ // On utilise cette méthode pour récupérer l'image de la caméra et ainsi travailler dessus.
    				Camera.Parameters parameters = camera.getParameters() ;
    				int height = parameters.getPreviewSize().height ;
    				int width = parameters.getPreviewSize().width ;
     
    				//... Traitement de ma vidéo ...
     
    				invalidate() ;
    				}
     
    			}
    		) ;
     
    	try	{
    		mCamera.setPreviewDisplay(holder);
    		}
    	catch (Exception exception)
    		{
    		mCamera.release();
    		mCamera = null;
    		}
    	}
     
     
     
     
    public void surfaceDestroyed(SurfaceHolder holder)
    	{
    	// Surface will be destroyed when we return, so stop the preview.
    	// Because the CameraDevice object is not a shared resource, it's very important to release it when the activity is paused.
    	mCamera.stopPreview();
    	mCamera.release();
    	mCamera = null;
    	}
     
     
    private Size getOptimalPreviewSize(List<Size> sizes, int w, int h)
    	{
    	final double ASPECT_TOLERANCE = 0.05;
    	double targetRatio = (double) w / h;
    	if (sizes == null) return null;
     
    	Size optimalSize = null;
    	double minDiff = Double.MAX_VALUE;
     
    	int targetHeight = h;
     
    	// Try to find an size match aspect ratio and size
    	for (Size size : sizes)
    		{
    		double ratio = (double) size.width / size.height;
    		if (Math.abs(ratio - targetRatio) > ASPECT_TOLERANCE) continue;
    		if (Math.abs(size.height - targetHeight) < minDiff)
    			{
    			optimalSize = size;
    			minDiff = Math.abs(size.height - targetHeight);
    			}
    		}
     
    	// Cannot find the one match the aspect ratio, ignore the requirement
    	if (optimalSize == null)
    		{
    		minDiff = Double.MAX_VALUE;
    		for (Size size : sizes)
    			{
    			if (Math.abs(size.height - targetHeight) < minDiff)
    				{
    				optimalSize = size;
    				minDiff = Math.abs(size.height - targetHeight);
    				}
    			}
    		}
    	return optimalSize;
    	}
     
     
    public void surfaceChanged(SurfaceHolder holder, int format, int w, int h)
    	{
    	// Now that the size is known, set up the camera parameters and begin the preview.
    	Camera.Parameters parameters = mCamera.getParameters() ;
     
    	List<Size> sizes = parameters.getSupportedPreviewSizes() ;
    	Size optimalSize = getOptimalPreviewSize(sizes, w, h) ;
    	parameters.setPreviewSize(optimalSize.width, optimalSize.height) ;
     
    	mCamera.setParameters(parameters) ;
    	mCamera.startPreview() ;
    	}
    }

    Voilà, je dis pas que le code va compiler et fonctionner du premier coup, mais ça doit te donner une idée plus précise de comment faire pour que ça le fasse
    Si vous jugez mon post utile dans la résolution de votre problème, n'hésitez pas à utiliser le système de vote afin d'améliorer la qualité du forum

  5. #5
    Modérateur
    Avatar de ToTo13
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Janvier 2006
    Messages
    5 793
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Santé

    Informations forums :
    Inscription : Janvier 2006
    Messages : 5 793
    Points : 9 860
    Points
    9 860
    Par défaut
    Merci ça fonctionne !!!

    Mais maintenant question pour un champion
    Dans la méthode "onPreviewFrame" je récupère les pixels de la caméra sous forme d'un "byte[]", puis après je les traite.
    Comment faire pour ré-afficher directement les modifications ?
    Donc en fait comment écrire directement dans l'image récupérer pour la ré-afficher ?
    Consignes aux jeunes padawans : une image vaut 1000 mots !
    - Dans ton message respecter tu dois : les règles de rédaction et du forum, prévisualiser, relire et corriger TOUTES les FAUTES (frappes, sms, d'aurteaugrafe, mettre les ACCENTS et les BALISES) => ECRIRE clairement et en Français tu DOIS.
    - Le côté obscur je sens dans le MP => Tous tes MPs je détruirai et la réponse tu n'auras si en privé tu veux que je t'enseigne.(Lis donc ceci)
    - ton poste tu dois marquer quand la bonne réponse tu as obtenu.

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2010
    Messages
    57
    Détails du profil
    Informations personnelles :
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Novembre 2010
    Messages : 57
    Points : 57
    Points
    57
    Par défaut
    @ MrDuChnok
    J'ai copié tout le code
    changé:
    List<Size> sizes = (List<Size>) parameters.getPreviewSize(); //parameters.getSupportedPreviewSizes() ;
    parce que je travail sur Platforme 1.6

    et installer sur le mobile SamSung Galasy Android 1.6 ce ne marche pas
    (déjà ajouté des permission à fichier manifest).

    comment pour marcher votre Code ??


    à logcat:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    01-28 11:33:59.492: ERROR/AndroidRuntime(15713): Uncaught handler: thread main exiting due to uncaught exception
    01-28 11:33:59.892: ERROR/AndroidRuntime(15713): java.lang.ClassCastException: android.hardware.Camera$Size
    01-28 11:33:59.892: ERROR/AndroidRuntime(15713):     at camera.canvas.Preview.surfaceChanged(CameraPreview.java:193)
    01-28 11:33:59.892: ERROR/AndroidRuntime(15713):     at android.view.SurfaceView.updateWindow(SurfaceView.java:398)
    01-28 11:33:59.892: ERROR/AndroidRuntime(15713):     at android.view.SurfaceView.dispatchDraw(SurfaceView.java:264)
    01-28 11:33:59.892: ERROR/AndroidRuntime(15713):     at android.view.ViewGroup.drawChild(ViewGroup.java:1524)
    01-28 11:33:59.892: ERROR/AndroidRuntime(15713):     at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1256)
    01-28 11:33:59.892: ERROR/AndroidRuntime(15713):     at android.view.ViewGroup.drawChild(ViewGroup.java:1524)
    01-28 11:33:59.892: ERROR/AndroidRuntime(15713):     at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1256)
    01-28 11:33:59.892: ERROR/AndroidRuntime(15713):     at android.view.View.draw(View.java:6277)
    01-28 11:33:59.892: ERROR/AndroidRuntime(15713):     at android.widget.FrameLayout.draw(FrameLayout.java:352)
    01-28 11:33:59.892: ERROR/AndroidRuntime(15713):     at android.view.ViewGroup.drawChild(ViewGroup.java:1526)
    01-28 11:33:59.892: ERROR/AndroidRuntime(15713):     at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1256)
    01-28 11:33:59.892: ERROR/AndroidRuntime(15713):     at android.view.View.draw(View.java:6277)
    01-28 11:33:59.892: ERROR/AndroidRuntime(15713):     at android.widget.FrameLayout.draw(FrameLayout.java:352)
    01-28 11:33:59.892: ERROR/AndroidRuntime(15713):     at com.android.internal.policy.impl.PhoneWindow$DecorView.draw(PhoneWindow.java:1883)
    01-28 11:33:59.892: ERROR/AndroidRuntime(15713):     at android.view.ViewRoot.draw(ViewRoot.java:1332)
    01-28 11:33:59.892: ERROR/AndroidRuntime(15713):     at android.view.ViewRoot.performTraversals(ViewRoot.java:1097)
    01-28 11:33:59.892: ERROR/AndroidRuntime(15713):     at android.view.ViewRoot.handleMessage(ViewRoot.java:1613)
    01-28 11:33:59.892: ERROR/AndroidRuntime(15713):     at android.os.Handler.dispatchMessage(Handler.java:99)
    01-28 11:33:59.892: ERROR/AndroidRuntime(15713):     at android.os.Looper.loop(Looper.java:123)
    01-28 11:33:59.892: ERROR/AndroidRuntime(15713):     at android.app.ActivityThread.main(ActivityThread.java:4203)
    01-28 11:33:59.892: ERROR/AndroidRuntime(15713):     at java.lang.reflect.Method.invokeNative(Native Method)
    01-28 11:33:59.892: ERROR/AndroidRuntime(15713):     at java.lang.reflect.Method.invoke(Method.java:521)
    01-28 11:33:59.892: ERROR/AndroidRuntime(15713):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:791)
    01-28 11:33:59.892: ERROR/AndroidRuntime(15713):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:549)
    01-28 11:33:59.892: ERROR/AndroidRuntime(15713):     at dalvik.system.NativeStart.main(Native Method)


    Merci à vous

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2010
    Messages
    57
    Détails du profil
    Informations personnelles :
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Novembre 2010
    Messages : 57
    Points : 57
    Points
    57
    Par défaut
    Merci

    Ce marche !

    dans partie Class Preview
    _________

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    public void surfaceChanged(SurfaceHolder holder, int format, int w, int h)
    	{
    	// Now that the size is known, set up the camera parameters and begin the preview.
    	/*Camera.Parameters parameters = mCamera.getParameters() ;
     
    	@SuppressWarnings("unchecked")
    	List<Size> sizes = (List<Size>) parameters.getPreviewSize();  //parameters.getSupportedPreviewSizes() ;
    	Size optimalSize = getOptimalPreviewSize(sizes, w, h) ;
    	parameters.setPreviewSize(optimalSize.width, optimalSize.height) ;
     
    	mCamera.setParameters(parameters) ;*/
    	mCamera.startPreview() ;
    	}

Discussions similaires

  1. particule tirée et la camera ?
    Par ilimo dans le forum DirectX
    Réponses: 1
    Dernier message: 12/08/2004, 14h40
  2. Réponses: 4
    Dernier message: 25/02/2004, 08h22
  3. Camera First Person Shooter
    Par Martin dans le forum OpenGL
    Réponses: 6
    Dernier message: 15/01/2004, 04h37
  4. Camera - Directx3D
    Par oxor3 dans le forum DirectX
    Réponses: 3
    Dernier message: 20/09/2003, 00h47
  5. Texte // camera
    Par logramme dans le forum DirectX
    Réponses: 1
    Dernier message: 10/08/2002, 21h05

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo