Giter Site home page Giter Site logo

duanhong169 / camera Goto Github PK

View Code? Open in Web Editor NEW
129.0 8.0 44.0 464 KB

📸 Use Android camera to take pictures and videos, based on `camera2` api.

License: Apache License 2.0

Java 100.00%
android-library android-camera android-camera2 android-video-recorder android-camera-view android-camera-preview

camera's Issues

cant integrate into existing project

when
implementation 'com.github.duanhong169:camera:1.0.3'
is added to app/build.gradle, sync reports this error:

duplicate value for resource 'attr/mode' with config ''.

On starting video recording facing this issue

2019-05-09 21:22:37.867 31392-31392/? E/libpersona: Couldn't open the File - /data/system/users/0/personalist.xml - No such file or directory
2019-05-09 21:23:36.655 31392-31392/top.defaults.cameraapp E/Media_APM :: isCalledPackage return false
2019-05-09 21:23:36.872 31392-31392/top.defaults.cameraapp E/Legacy-CameraDevice-JNI: LegacyCameraDevice_nativeDetectSurfaceDimens: Error while querying surface width No such device (-19).
2019-05-09 21:23:36.877 31392-31392/top.defaults.cameraapp E/AndroidRuntime: FATAL EXCEPTION: main
Process: top.defaults.cameraapp, PID: 31392
java.lang.IllegalArgumentException: Surface was abandoned
at android.hardware.camera2.utils.SurfaceUtils.getSurfaceSize(SurfaceUtils.java:70)
at android.hardware.camera2.params.OutputConfiguration.(OutputConfiguration.java:237)
at android.hardware.camera2.params.OutputConfiguration.(OutputConfiguration.java:101)
at android.hardware.camera2.impl.CameraDeviceImpl.createCaptureSession(CameraDeviceImpl.java:504)
at top.defaults.camera.Camera2Photographer.startRecording(Camera2Photographer.java:827)
at top.defaults.cameraapp.PhotographerActivity.action(PhotographerActivity.java:166)
at top.defaults.cameraapp.PhotographerActivity_ViewBinding$5.doClick(PhotographerActivity_ViewBinding.java:93)
at butterknife.internal.DebouncingOnClickListener.onClick(DebouncingOnClickListener.java:22)
at android.view.View.performClick(View.java:6935)
at android.view.View$PerformClick.run(View.java:26214)
at android.os.Handler.handleCallback(Handler.java:790)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:164)
at android.app.ActivityThread.main(ActivityThread.java:7000)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:441)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1408)
Caused by: android.hardware.camera2.legacy.LegacyExceptionUtils$BufferQueueAbandonedException
at android.hardware.camera2.legacy.LegacyExceptionUtils.throwOnError(LegacyExceptionUtils.java:73)
at android.hardware.camera2.legacy.LegacyCameraDevice.getSurfaceSize(LegacyCameraDevice.java:604)
at android.hardware.camera2.utils.SurfaceUtils.getSurfaceSize(SurfaceUtils.java:68)
at android.hardware.camera2.params.OutputConfiguration.(OutputConfiguration.java:237) 
at android.hardware.camera2.params.OutputConfiguration.(OutputConfiguration.java:101) 
at android.hardware.camera2.impl.CameraDeviceImpl.createCaptureSession(CameraDeviceImpl.java:504) 
at top.defaults.camera.Camera2Photographer.startRecording(Camera2Photographer.java:827) 
at top.defaults.cameraapp.PhotographerActivity.action(PhotographerActivity.java:166) 
at top.defaults.cameraapp.PhotographerActivity_ViewBinding$5.doClick(PhotographerActivity_ViewBinding.java:93) 
at butterknife.internal.DebouncingOnClickListener.onClick(DebouncingOnClickListener.java:22) 
at android.view.View.performClick(View.java:6935) 
at android.view.View$PerformClick.run(View.java:26214) 
at android.os.Handler.handleCallback(Handler.java:790) 
at android.os.Handler.dispatchMessage(Handler.java:99) 
at android.os.Looper.loop(Looper.java:164) 
at android.app.ActivityThread.main(ActivityThread.java:7000) 
at java.lang.reflect.Method.invoke(Native Method) 
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:441) 
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1408) 

Android Access denied error while using Camera

I'm getting error Access denied finding property "persist.vendor.camera.privapp.list" and access denied finding property "camera.aux.packagelist" for Android api 28 and above ie 8 and 9 android versions.Please help me.

Back camera not saved

This is wonderful example thank you. But back camera not saved images and videos. Front camera is working. What must i do . Thank you..

About ImageSize save problem

I am using huawei for devoloping. when i was image mode imageSize return 4608*3456 from Camere2Photographer.java . and seems toast message your image saved . But not saved in files folder. When i choose imageSize from dialog smaller size , saved.

I tried in samsung phone no problem. All supported images saved. It is problem about Huawai phones ? How can i solve this problem.

Thank you.

camera.Size ctor has package access

I faced problem with programmatical change of Photographer ImageSize, because Size ctor is not accessible outside its package. I overacame the problem with reflection, but I think missing public ctor of Size is a little omission which could be quickly fixed.

Crash: CameraAccessException: The camera device has encountered a serious error

Android API 21
this is Library not working.

My logcat;


09-18 10:37:03.569 5606-5636/top.defaults.cameraapp E/GED: Failed to get GED Log Buf, err(0)
09-18 10:37:26.807 5606-5679/top.defaults.cameraapp E/MALI: get_target_buffer:967: winsysp_window_buffer_get failed 12299
09-18 10:37:26.846 5606-5679/top.defaults.cameraapp E/MALI: gles_state_set_error_internal:56: GLES ctx: 0x7f91006008, error code:0x505
09-18 10:37:26.874 5606-5679/top.defaults.cameraapp E/CameraDeviceGLThread-0: Received exception on GL render thread: 
    java.lang.IllegalStateException: glDrawArrays: GLES20 error: 0x505
        at android.hardware.camera2.legacy.SurfaceTextureRenderer.checkGlError(SurfaceTextureRenderer.java:537)
        at android.hardware.camera2.legacy.SurfaceTextureRenderer.drawFrame(SurfaceTextureRenderer.java:346)
        at android.hardware.camera2.legacy.SurfaceTextureRenderer.drawIntoSurfaces(SurfaceTextureRenderer.java:726)
        at android.hardware.camera2.legacy.GLThreadManager$1.handleMessage(GLThreadManager.java:105)
        at android.os.Handler.dispatchMessage(Handler.java:107)
        at android.os.Looper.loop(Looper.java:194)
        at android.os.HandlerThread.run(HandlerThread.java:61)
09-18 10:37:26.978 5606-5606/top.defaults.cameraapp E/CameraCaptureSession: Session 1: Exception while stopping repeating: 
    android.hardware.camera2.CameraAccessException: The camera device has encountered a serious error
        at android.hardware.camera2.impl.CameraDeviceImpl.checkIfCameraClosedOrInError(CameraDeviceImpl.java:1478)
        at android.hardware.camera2.impl.CameraDeviceImpl.stopRepeating(CameraDeviceImpl.java:677)
        at android.hardware.camera2.impl.CameraCaptureSessionImpl.close(CameraCaptureSessionImpl.java:328)
        at top.defaults.camera.Camera2Photographer.closePreviewSession(Camera2Photographer.java:700)
        at top.defaults.camera.Camera2Photographer.closeCamera(Camera2Photographer.java:687)
        at top.defaults.camera.Camera2Photographer.stopPreview(Camera2Photographer.java:452)
        at top.defaults.camera.Camera2Photographer$1.onError(Camera2Photographer.java:130)
        at android.hardware.camera2.impl.CameraDeviceImpl$CameraDeviceCallbacks$1.run(CameraDeviceImpl.java:1207)
        at android.os.Handler.handleCallback(Handler.java:815)
        at android.os.Handler.dispatchMessage(Handler.java:104)
        at android.os.Looper.loop(Looper.java:194)
        at android.app.ActivityThread.main(ActivityThread.java:5624)
        at java.lang.reflect.Method.invoke(Native Method)
        at java.lang.reflect.Method.invoke(Method.java:372)
        at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:959)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:754)
09-18 10:37:30.830 5606-5678/top.defaults.cameraapp E/RequestThread-0: Timed out while waiting for request to complete.
09-18 10:37:30.831 5606-5678/top.defaults.cameraapp E/CameraDeviceState: Cannot receive result while in state: 0
09-18 10:37:30.831 5606-5678/top.defaults.cameraapp E/CameraDeviceState: Cannot receive result while in state: 0
09-18 10:37:30.834 5606-5678/top.defaults.cameraapp E/CameraDeviceState: Cannot receive result while in state: 0
09-18 10:37:30.957 5606-5623/top.defaults.cameraapp E/BufferQueueProducer: [unnamed-5606-2](this:0x7f91234000,id:2,api:4,p:245,c:-1) queueBuffer: BufferQueue has been abandoned
09-18 10:37:30.958 5606-5684/top.defaults.cameraapp E/BufferQueueProducer: [unnamed-5606-2](this:0x7f91234000,id:2,api:4,p:245,c:-1) dequeueBuffer: BufferQueue has been abandoned
09-18 10:37:30.988 5606-5624/top.defaults.cameraapp E/BufferQueueProducer: [unnamed-5606-2](this:0x7f91234000,id:2,api:4,p:245,c:-1) queueBuffer: BufferQueue has been abandoned
09-18 10:37:30.990 5606-5623/top.defaults.cameraapp E/BufferQueueProducer: [unnamed-5606-2](this:0x7f91234000,id:2,api:4,p:245,c:-1) dequeueBuffer: BufferQueue has been abandoned
09-18 10:37:31.449 5606-5684/top.defaults.cameraapp E/BufferQueueProducer: [unnamed-5606-2](this:0x7f91234000,id:2,api:4,p:245,c:-1) cancelBuffer: BufferQueue has been abandoned
09-18 10:37:31.450 5606-5678/top.defaults.cameraapp E/BufferQueueProducer: [unnamed-5606-2](this:0x7f91234000,id:2,api:4,p:245,c:-1) query: BufferQueue has been abandoned
09-18 10:37:31.621 5606-5606/top.defaults.cameraapp E/PhotographerActivity: Error happens: The camera device has encountered a serious error
09-18 10:37:31.623 5606-5606/top.defaults.cameraapp E/AndroidRuntime: FATAL EXCEPTION: main
    Process: top.defaults.cameraapp, PID: 5606
    java.lang.RuntimeException: MediaRecorder is not initialized
        at top.defaults.camera.Camera2Photographer.throwIfNoMediaRecorder(Camera2Photographer.java:260)
        at top.defaults.camera.Camera2Photographer.startRecording(Camera2Photographer.java:798)
        at top.defaults.cameraapp.PhotographerActivity.action(PhotographerActivity.java:166)
        at top.defaults.cameraapp.PhotographerActivity_ViewBinding$5.doClick(PhotographerActivity_ViewBinding.java:93)
        at butterknife.internal.DebouncingOnClickListener.onClick(DebouncingOnClickListener.java:22)
        at android.view.View.performClick(View.java:4848)
        at android.view.View$PerformClick.run(View.java:20260)
        at android.os.Handler.handleCallback(Handler.java:815)
        at android.os.Handler.dispatchMessage(Handler.java:104)
        at android.os.Looper.loop(Looper.java:194)
        at android.app.ActivityThread.main(ActivityThread.java:5624)
        at java.lang.reflect.Method.invoke(Native Method)
        at java.lang.reflect.Method.invoke(Method.java:372)
        at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:959)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:754)

Square ratio

Does it support a square ratio (1:1)? I tried it but it looks more like 4:3, it's not as square as expected.

4k

可以支持4k录像吗?

Pause video record

Is there any option available to pause the video record and restart it?

video codec not supported

When I make a video with this library ( com.github.duanhong169:camera:1.0.3 ) and when i click to play this video ,video not played just voice and writes "video codec not supported"

Can you help me for this problem how to fix ?

After captured Image or recorded video

After completed camera operations , I want to show image or video in other actvity .
Is that true ?

In PhotographerActivity.java i added to announcingNewFile method these codes. Is it enogh or must i do something about stop camera or backgroundtasks?

Thank you

            ` private void announcingNewFile(String filePath) {
	Toast.makeText(PhotographerActivity.this, "File: " + filePath, Toast.LENGTH_SHORT).show();
	Utils.addMediaToGallery(PhotographerActivity.this, filePath);
	
	finish();

	try {
		Thread.sleep(500);
	} catch (InterruptedException e) {
		e.printStackTrace();
	}


	Intent intent = new Intent(PhotographerActivity.this,PreviewActivity.class);
	intent.putExtra("mode",0);
	intent.putExtra("file",filePath);
	startActivity(intent);

}`

Crash: not working. Resources$NotFoundException

Version used;
Android API 21
v1.0.3

My Logcat;

09-18 10:23:19.430 3456-3508/top.defaults.cameraapp E/GED: Failed to get GED Log Buf, err(0)
09-18 10:23:33.270 3456-3456/top.defaults.cameraapp E/AndroidRuntime: FATAL EXCEPTION: main
    Process: top.defaults.cameraapp, PID: 3456
    java.lang.RuntimeException: Unable to start activity ComponentInfo{top.defaults.cameraapp/top.defaults.cameraapp.PhotographerActivity}: android.view.InflateException: Binary XML file line #139: Error inflating class ImageButton
        at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2521)
        at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2595)
        at android.app.ActivityThread.access$800(ActivityThread.java:178)
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1470)
        at android.os.Handler.dispatchMessage(Handler.java:111)
        at android.os.Looper.loop(Looper.java:194)
        at android.app.ActivityThread.main(ActivityThread.java:5624)
        at java.lang.reflect.Method.invoke(Native Method)
        at java.lang.reflect.Method.invoke(Method.java:372)
        at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:959)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:754)
     Caused by: android.view.InflateException: Binary XML file line #139: Error inflating class ImageButton
        at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:763)
        at android.view.LayoutInflater.rInflate(LayoutInflater.java:806)
        at android.view.LayoutInflater.rInflate(LayoutInflater.java:809)
        at android.view.LayoutInflater.inflate(LayoutInflater.java:504)
        at android.view.LayoutInflater.inflate(LayoutInflater.java:414)
        at android.view.LayoutInflater.inflate(LayoutInflater.java:365)
        at android.support.v7.app.AppCompatDelegateImplV9.setContentView(AppCompatDelegateImplV9.java:287)
        at android.support.v7.app.AppCompatActivity.setContentView(AppCompatActivity.java:139)
        at top.defaults.cameraapp.PhotographerActivity.onCreate(PhotographerActivity.java:201)
        at android.app.Activity.performCreate(Activity.java:6092)
        at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1112)
        at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2468)
        at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2595) 
        at android.app.ActivityThread.access$800(ActivityThread.java:178) 
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1470) 
        at android.os.Handler.dispatchMessage(Handler.java:111) 
        at android.os.Looper.loop(Looper.java:194) 
        at android.app.ActivityThread.main(ActivityThread.java:5624) 
        at java.lang.reflect.Method.invoke(Native Method) 
        at java.lang.reflect.Method.invoke(Method.java:372) 
        at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:959) 
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:754) 
     Caused by: android.content.res.Resources$NotFoundException: Resource "top.defaults.cameraapp:drawable/ic_switch_camera" (7f070068)  is not a Drawable (color or path): TypedValue{t=0x1/d=0x7f070068 a=-1 r=0x7f070068}
        at android.content.res.Resources.loadDrawableForCookie(Resources.java:2690)
        at android.content.res.Resources.loadDrawable(Resources.java:2614)
        at android.content.res.TypedArray.getDrawable(TypedArray.java:749)
        at android.widget.ImageView.<init>(ImageView.java:146)
        at android.widget.ImageButton.<init>(ImageButton.java:86)
        at android.widget.ImageButton.<init>(ImageButton.java:82)
        at android.support.v7.widget.AppCompatImageButton.<init>(AppCompatImageButton.java:72)
        at android.support.v7.widget.AppCompatImageButton.<init>(AppCompatImageButton.java:68)
        at android.support.v7.app.AppCompatViewInflater.createImageButton(AppCompatViewInflater.java:201)
        at android.support.v7.app.AppCompatViewInflater.createView(AppCompatViewInflater.java:121)
        at android.support.v7.app.AppCompatDelegateImplV9.createView(AppCompatDelegateImplV9.java:1035)
        at android.support.v7.app.AppCompatDelegateImplV9.onCreateView(AppCompatDelegateImplV9.java:1092)
        at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:725)
        at android.view.LayoutInflater.rInflate(LayoutInflater.java:806) 
        at android.view.LayoutInflater.rInflate(LayoutInflater.java:809) 
        at android.view.LayoutInflater.inflate(LayoutInflater.java:504) 
        at android.view.LayoutInflater.inflate(LayoutInflater.java:414) 
        at android.view.LayoutInflater.inflate(LayoutInflater.java:365) 
        at android.support.v7.app.AppCompatDelegateImplV9.setContentView(AppCompatDelegateImplV9.java:287) 
        at android.support.v7.app.AppCompatActivity.setContentView(AppCompatActivity.java:139) 
        at top.defaults.cameraapp.PhotographerActivity.onCreate(PhotographerActivity.java:201) 
        at android.app.Activity.performCreate(Activity.java:6092) 
        at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1112) 
        at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2468) 
        at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2595) 
        at android.app.ActivityThread.access$800(ActivityThread.java:178) 
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1470) 
        at android.os.Handler.dispatchMessage(Handler.java:111) 
        at android.os.Looper.loop(Looper.java:194) 
        at android.app.ActivityThread.main(ActivityThread.java:5624) 
        at java.lang.reflect.Method.invoke(Native Method) 
        at java.lang.reflect.Method.invoke(Method.java:372) 
        at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:959) 
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:754) 

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.