Je l'ai résolu moi-même et je partage mon morceau de code de travail, juste en utilisant l'API de la caméra au ralenti et timelapse sont mis en œuvre
Avant de commencer, vous devez connaître la définition de setCaptureRate(double fps)
Régler la vitesse de capture d'image vidéo . Cela peut être utilisé pour fixer un taux de capture d'image vidéo différente de celle du taux de lecture de la vidéo enregistrée . Cette méthode règle également le mode d'enregistrement sur le temps écoulé. Dans l'enregistrement vidéo time-lapse, seule la vidéo est enregistrée. Les paramètres liés à l'audio sont ignorés lorsqu'une session d'enregistrement démarre, si une application les définit.
TimeLapse
Pour laps de temps vous devez utiliser suivant le profil de la caméra, selon vous la largeur du cadre vidéo et de la hauteur. Choisissez une en bas profil ou vous pouvez choisir d'autres selon vos besoins.
profile = CamcorderProfile.get(CamcorderProfile.QUALITY_TIME_LAPSE_1080P);
profile = CamcorderProfile.get(CamcorderProfile.QUALITY_TIME_LAPSE_720P);
profile = CamcorderProfile.get(CamcorderProfile.QUALITY_TIME_LAPSE_480P);
Et maintenant, vous devez configurer votre vidéo setCaptureRate
et setVideoEncodingBitRate
video_recorder.setCaptureRate(profile.videoFrameRate/6.0f);
video_recorder.setVideoEncodingBitRate(profile.videoBitRate);
et enfin vous devez définir votre profil configuré à votre MediaRecorder.
video_recorder.setProfile(profile);
Slow Motion
Pour un mouvement lent, vous devez également configurer CamcorderProfile j'utilise config pour le profil d'écoulement.
profile = CamcorderProfile.get(CamcorderProfile.QUALITY_HIGH_SPEED_HIGH);
video_recorder.setCaptureRate(profile.videoFrameRate/0.25f);
video_recorder.setVideoEncodingBitRate(profile.videoBitRate);
video_recorder.setProfile(profile);
Pour slowmotion, vous devez utiliser CameraAPI2 sinon il ne fonctionnera pas.
Les deux défis sont très différents. Tandis que SlowMotion dépend de la prise en charge d'une caméra native FPS élevée, TimeLapse peut être réalisé avec MediaCodec. Voir http://stackoverflow.com/questions/30972081/how-to-drop-frames-while-recording-with-mediacodec-and-inputsurface et https://github.com/saki4510t/TimeLapseRecordingSample –
Un autre projet open-source est https://github.com/mercyorangi/sky-camera –
@AlexCohn merci d'essayer mais au dessus du code ne fonctionne pas pour moi, en cas de ralenti. – IshRoid