Selon Android SDK Mediarecorder.SetCamera, peut être utilisé pour recycler l'instance de caméra existante pour la capture vidéo et l'aperçu sans réinitialiser l'aperçu. Je n'ai pas pu trouver d'échantillon et toutes mes tentatives étaient inutiles: je reçois la mauvaise exception d'état, ou mediarecorder.prepare échoue. P>
Pour référence: http://developer.android.com /reference/andrroid/media/mediarecorder.html#setcamera(android.hardware.camera) p>
6 Réponses :
J'ai trouvé 2 liens que vous pourriez trouver utiles.
Puis-je demander la raison de cette réponse d'être abattue? Considérant quand j'avais répondu à cette question, la caméra Android est restée la bonne référence pour cette question. Est-ce juste une question de quelqu'un qui est paresseux de rechercher ce dont ils ont besoin là-bas? Ou avez-vous préféré un commentaire au lieu d'une réponse?
Simplement fournir les liens, en particulier en dehors du site Web du réseau Stackexchange, sans explication supplémentaire n'est pas la meilleure pratique pour répondre à la question. Si le lien est cassé, votre réponse sera inutile (votre lien est en réalité brisé maintenant. Vérifiez). Vérifiez).
Les liens sont cassés
La source d'application de la caméra Android fournit le meilleur exemple. Après une certaine enquête, j'ai découvert que enregistreur.setcamera (appareil photo) code> doit être appelé immédiatement après l'instanciation du
Mediarecorder code> ou au moins avant que tous les paramètres ne soient appliqués. Appliquer tous les paramètres (
SetVidéosource () Code>, etc.) Avant d'appeler
SetCamera () Code> Résultats dans une erreur. p>
Avez-vous essayé d'utiliser les fonctions suivantes après avoir créé une instance de Mediarecorder? P>
// déverrouille l'appareil photo pour permettre à un autre processus d'y accéder. p>
mcameradevice.unlock (); p> blockQuote>
// définit une caméra à utiliser pour l'enregistrement. Utilisez cette fonction pour passer rapidement entre aperçu et // Mode de capture sans détruire l'objet de la caméra. p>
mmeiarecorder.setcamera (mcameradevice); p> blockQuote>
J'ai eu mon médiarecorder initié: mais pas comme ceci: p> (headbang) haha .. Maintenant mon problème est Un Kalydascope pour un aperçu. Il est temps de rechercher les interwebs .. p> Espérons que cela a aidé quelqu'un. p> p>
J'ai rencontré le même problème et j'ai découvert comment cela peut fonctionner. Certaines choses doivent être faites correctement. Tout d'abord, vous devriez vérifier le tableau de l'état à partir du Document Android .
Un ordre de fonctionnement des commandes est le suivant. p> Un exemple complet peut être trouvé ici . P> p>
J'ai eu un indice d'@lyron.
premier fort>, ouvrez la caméra avant. p> J'ai besoin d'utiliser la caméra avant ci-dessus. p> et N'oubliez pas strong> pour déverrouiller la caméra. P> Si vous ne le faites pas, vous verrez des erreurs ci-dessous. P> seconde strong>, réglez l'appareil photo avant de définir les autres comme celui-ci. P> recorder = new MediaRecorder();
recorder.setCamera( mCamera ); // like this!
recorder.setAudioSource( MediaRecorder.AudioSource.MIC);
recorder.setVideoSource( MediaRecorder.VideoSource.CAMERA);
recorder.setOutputFormat(MediaRecorder.OutputFormat.MPEG_4);
recorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB);
recorder.setVideoEncoder(MediaRecorder.VideoEncoder.MPEG_4_SP);
recorder.setVideoSize( 2560, 1440 );
recorder.setVideoFrameRate(30);
recorder.setPreviewDisplay(holder.getSurface());
recorder.setOutputFile( s_dir );
try {
recorder.prepare();
recorder.start();
} catch( Exception e ) {
Log.e("SampleVideoRecorder", "Exception : ", e );
recorder.release();
recorder = null;
}