android - Rotate built in camera -
i've searched web couldn't find specific answer. using built in camera-app in phone , after have recorded orientation 90 degress wrong. think in camera, because when record in landscape mode, want rotate user rotates phone. when use camera app rotatates should. tried setcameradisplayorientation method not know how use it.
thanks in advance
import android.app.activity; import android.content.intent; import android.content.pm.activityinfo; import android.hardware.camera; import android.net.uri; import android.os.bundle; import android.provider.mediastore; import android.view.surface; import android.widget.toast; public class capturevideo extends activity { final static int request_video_captured = 1; static uri urivideo = null; /** called when activity first created. */ @override public void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); setcontentview(r.layout.main);// nu kommer man till main.xml två gånger. låter det ligga så så att vi connectar till en annan knapp senare. intent intent = new intent(android.provider.mediastore.action_video_capture); intent.putextra("android.intent.extra.durationlimit", 8); intent.putextra(mediastore.extra_screen_orientation, activityinfo.screen_orientation_portrait); intent.putextra("android.intent.extra.videoquality", 1); startactivityforresult(intent, request_video_captured); } @override protected void onactivityresult(int requestcode, int resultcode, intent data) { if(resultcode == result_ok){ if(requestcode == request_video_captured){ urivideo = data.getdata(); toast.maketext(capturevideo.this,urivideo.getpath(),toast.length_long).show(); intent intent = new intent(capturevideo.this, showvideo.class); startactivity(intent); } } else if(resultcode == result_canceled){ urivideo = null; toast.maketext(capturevideo.this,"cancelled!",toast.length_long).show(); } } public static void setcameradisplayorientation(activity activity, int cameraid, android.hardware.camera camera) { android.hardware.camera.camerainfo info = new android.hardware.camera.camerainfo(); android.hardware.camera.getcamerainfo(cameraid, info); int rotation = activity.getwindowmanager().getdefaultdisplay().getrotation(); int degrees = 0; switch (rotation) { case surface.rotation_0: degrees = 0; break; case surface.rotation_90: degrees = 90; break; case surface.rotation_180: degrees = 180; break; case surface.rotation_270: degrees = 270; break; } int result; if (info.facing == camera.camerainfo.camera_facing_front) { result = (info.orientation + degrees) % 360; result = (360 - result) % 360; // compensate mirror } else { // back-facing result = (info.orientation - degrees + 360) % 360; } camera.setdisplayorientation(result); } }
Comments
Post a Comment