Git Product home page Git Product logo

mingyuechunqiu / recordermanager Goto Github PK

View Code? Open in Web Editor NEW
308.0 308.0 54.0 622 KB

Android仿微信录制音视频的管理工具,支持自定义,设置录制时长、保存路径、摄像头切换等。Android management tool for imitating wechat to record audio and video, supporting customization, setting recording duration, saving path, camera switching, etc

Java 90.40% Kotlin 9.60%

recordermanager's People

Contributors

mingyuechunqiu avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

recordermanager's Issues

录制分辨率问题

能不能给录制的分辨率改为自适应机型啊 现在我看是写死的640*480

录制时长set无效

按着您原Demo 调用 .setMaxDuration(60) 为什么还是30秒 然后我在 RecorderManagerConstants 和 option的默认Duration 直接改成60秒 录制时还是30秒 请问 set配置信息 这块是有问题吗

录制的时候被拉伸

打开摄像头的时候,是正常的,但是点击录制按钮,整个画面被拉伸了

视频文件名的创建

视频的文件名是在打开录制界面就创建的 可否在开始录制的时候再创建文件呢

你好,请问预览视频长宽比怎么控制

全面屏手机视频拉伸严重,如何根据机型适配长宽比或者能否直接全部按照16:9的处理 不做拉伸,我复制了RecorderManager类修改了videoRatio 没有效果

关于录制方式

录制视频能不能从一直按住按钮改为点击按钮开始录制,再点一次结束录制?

XML布局找不到对应的id

楼主你好,我在使用你的库的时候,编译出现问题,报如下错误,因为你的“@”和“id”之间缺少“+”造成的,希望楼主能够优化一下。

Error:(24, 46) No resource found that matches the given name (at 'layout_constraintBottom_toTopOf' with value '@id/cpb_record_video_record').
Error:(71, 46) No resource found that matches the given name (at 'layout_constraintRight_toLeftOf' with value '@id/iv_record_video_confirm').
Error:(24, 46) No resource found that matches the given name (at 'layout_constraintBottom_toTopOf' with value '@id/cpb_record_video_record').
Error:(71, 46) No resource found that matches the given name (at 'layout_constraintRight_toLeftOf' with value '@id/iv_record_video_confirm').

单击拍照功能

仿微信的话 是有单击拍照,长按录像的功能的,请问能加下吗

app_name

为什么依赖之后,app_name会被你的app_name覆盖

0.2.29报java.lang.RuntimeException: setParameters failed

在某些设备上无法录像,报错:
Process: com.hengkai.intelligentpensionplatformservice, PID: 4796
java.lang.RuntimeException: setParameters failed
at android.hardware.Camera.native_setParameters(Native Method)
at android.hardware.Camera.setParameters(Camera.java:3081)
at com.mingyuechunqiu.recordermanager.feature.record.RecorderManager.initCameraParameters(RecorderManager.java:281)
at com.mingyuechunqiu.recordermanager.feature.record.RecorderManager.initCamera(RecorderManager.java:177)
at com.mingyuechunqiu.recordermanager.feature.main.detail.RecordVideoPresenter.startPreview(RecordVideoPresenter.java:93)
at com.mingyuechunqiu.recordermanager.feature.main.detail.RecordVideoPresenter.onSurfaceCreated(RecordVideoPresenter.java:383)
at com.mingyuechunqiu.recordermanager.feature.main.detail.RecordVideoFragment.surfaceCreated(RecordVideoFragment.java:197)
at android.view.SurfaceView.updateWindow(SurfaceView.java:675)
at android.view.SurfaceView$3.onPreDraw(SurfaceView.java:202)
at android.view.ViewTreeObserver.dispatchOnPreDraw(ViewTreeObserver.java:944)
at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:2348)
at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1292)
at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:6598)
at android.view.Choreographer$CallbackRecord.run(Choreographer.java:800)
at android.view.Choreographer.doCallbacks(Choreographer.java:603)
at android.view.Choreographer.doFrame(Choreographer.java:572)
at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:786)
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:5637)
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:960)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:755)

调用最基本的,默认的视频录制,都直接崩溃了

image
image

在点击开始录制后,一直卡在00:01秒,再点一次停止播放,直接崩溃

Stack trace :  
java.lang.IllegalStateException
    at android.media.MediaRecorder.start(Native Method)
    at com.mingyuechunqiu.recordermanager.feature.record.RecorderHelper.recordVideo(RecorderHelper.java:164)
    at com.mingyuechunqiu.recordermanager.feature.record.RecorderManager.recordVideo(RecorderManager.java:87)
    at com.mingyuechunqiu.recordermanager.feature.main.detail.RecordVideoPresenter.startRecordVideo(RecordVideoPresenter.java:200)
    at com.mingyuechunqiu.recordermanager.feature.main.detail.RecordVideoPresenter.pressToStartRecordVideo(RecordVideoPresenter.java:143)
    at com.mingyuechunqiu.recordermanager.feature.main.detail.RecordVideoFragment$1.onPreProgress(RecordVideoFragment.java:83)
    at com.mingyuechunqiu.recordermanager.ui.widget.CircleProgressButton.onTouchEvent(CircleProgressButton.java:84)
    at android.view.View.dispatchTouchEvent(View.java:11776)
    at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2968)
    at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2600)
    at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2968)
    at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2600)
    at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2968)
    at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2600)
    at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2968)
    at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2600)
    at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2968)
    at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2600)
    at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2968)
    at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2600)
    at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2968)
    at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2600)
    at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2968)
    at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2600)
    at com.android.internal.policy.DecorView.superDispatchTouchEvent(DecorView.java:448)
    at com.android.internal.policy.PhoneWindow.superDispatchTouchEvent(PhoneWindow.java:1829)
    at android.app.Activity.dispatchTouchEvent(Activity.java:3307)
    at androidx.appcompat.view.WindowCallbackWrapper.dispatchTouchEvent(WindowCallbackWrapper.java:69)
    at com.android.internal.policy.DecorView.dispatchTouchEvent(DecorView.java:410)
    at android.view.View.dispatchPointerEvent(View.java:12015)
    at android.view.ViewRootImpl$ViewPostImeInputStage.processPointerEvent(ViewRootImpl.java:4795)
    at android.view.ViewRootImpl$ViewPostImeInputStage.onProcess(ViewRootImpl.java:4609)
    at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:4147)
    at android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:4200)
    at android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:4166)
    at android.view.ViewRootImpl$AsyncInputStage.forward(ViewRootImpl.java:4293)
    at android.view.ViewRootImpl$InputStage.apply(ViewRootImpl.java:4174)
    at android.view.ViewRootImpl$AsyncInputStage.apply(ViewRootImpl.java:4350)
    at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:4147)
    at android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:4200)
    at android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:4166)
    at android.view.ViewRootImpl$InputStage.apply(ViewRootImpl.java:4174)
    at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:4147)
    at android.view.ViewRootImpl.deliverInputEvent(ViewRootImpl.java:6661)
    at android.view.ViewRootImpl.doProcessInputEvents(ViewRootImpl.java:6635)
    at android.view.ViewRootImpl.enqueueInputEvent(ViewRootImpl.java:6596)

2020-11-24 11:29:11.100 4135-4135/com.qyz.qyz E/TLog: at android.view.ViewRootImpl$WindowInputEventReceiver.onInputEvent(ViewRootImpl.java:6764)
at android.view.InputEventReceiver.dispatchInputEvent(InputEventReceiver.java:186)
at android.os.MessageQueue.nativePollOnce(Native Method)
at android.os.MessageQueue.next(MessageQueue.java:325)
at android.os.Looper.loop(Looper.java:142)
at android.app.ActivityThread.main(ActivityThread.java:6494)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:438)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:807)

可否提供一个横屏的RecordVideoActivity

首先感谢作者,这个控件非常好。现在有个项目是平板端的,客户要求横屏,我试着继承RecordVideoActivity自己写了个Activity设置方向为横屏,但是界面是横过来了,摄像头预览并没有旋转。希望作者帮个忙。再次感谢!

自动录制及自动保存

你好!我是安卓新人。
想问下
1、用系统视频录制的话怎么让它录完直接保存,不需要我的确认。
2、怎么让它录完一个视频自动录下一个视频。
期待你的回复,感谢你的源码!

设置视频地址后拍摄视频不能结束

RecordVideoRequestOption option = new RecordVideoRequestOption.Builder()
.setMaxDuration(15)
// .setFilePath(DownloadFilePath.getRecordVideoPath(MainActivity.this))
.build();
RecorderManagerFactory.getRecordVideoRequest().startRecordVideo(MainActivity.this, 1001, option);

录制两秒自动停止

您好,我在测试的时候发现点击录制以后两秒左右他就自己停止了,还toast了一个“录制时间小于一秒”,通过修改maxduration也没成功。请问应该怎么修改?

视频录制开始的监视器在哪呢

想做一个视频录制开始时发送一个广播,没找到这方面的代码,不想进入录制界面就发送了,请问有这方面的功能吗。

小米6崩溃

E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.geographysurvey, PID: 26848
java.lang.RuntimeException: setParameters failed
at android.hardware.Camera.native_setParameters(Native Method)
at android.hardware.Camera.setParameters(Camera.java:2058)
at com.mingyuechunqiu.recordermanager.record.RecorderManager.initCameraParameters(RecorderManager.java:204)
at com.mingyuechunqiu.recordermanager.record.RecorderManager.initCamera(RecorderManager.java:129)
at com.mingyuechunqiu.recordermanager.ui.fragment.RecordVideoDelegate.startPreview(RecordVideoDelegate.java:95)
at com.mingyuechunqiu.recordermanager.ui.fragment.RecordVideoDelegate.onSurfaceCreated(RecordVideoDelegate.java:395)
at com.mingyuechunqiu.recordermanager.ui.fragment.RecordVideoFragment.surfaceCreated(RecordVideoFragment.java:189)
at android.view.SurfaceView.updateWindow(SurfaceView.java:634)
at android.view.SurfaceView$3.onPreDraw(SurfaceView.java:162)
at android.view.ViewTreeObserver.dispatchOnPreDraw(ViewTreeObserver.java:944)
at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:2266)
at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1315)
at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:6430)
at android.view.Choreographer$CallbackRecord.run(Choreographer.java:876)
at android.view.Choreographer.doCallbacks(Choreographer.java:688)
at android.view.Choreographer.doFrame(Choreographer.java:623)
at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:862)
at android.os.Handler.handleCallback(Handler.java:754)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:163)
at android.app.ActivityThread.main(ActivityThread.java:6276)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:898)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:788)

设置视频宽高崩溃

通过RecorderOption设置了视频的宽高会闪退; 另外这个按下按钮时的提示音可以取消吗, 怎么取消呢

java.lang.IllegalStateException at android.media.MediaRecorder.start(Native Method)

误碰录制按钮,再次点录制按钮闪退

Process Name: 'com.sj.navi.demo'
Thread Name: 'main'
Back traces starts.
java.lang.IllegalStateException
at android.media.MediaRecorder.start(Native Method)
at com.mingyuechunqiu.recordermanager.feature.record.RecorderHelper.recordVideo(RecorderHelper.java:167)
at com.mingyuechunqiu.recordermanager.feature.record.RecorderManager.recordVideo(RecorderManager.java:89)
at com.mingyuechunqiu.recordermanager.feature.main.detail.RecordVideoPresenter.startRecordVideo(RecordVideoPresenter.kt:148)
at com.mingyuechunqiu.recordermanager.feature.main.detail.RecordVideoPresenter.pressToStartRecordVideo(RecordVideoPresenter.kt:98)
at com.mingyuechunqiu.recordermanager.feature.main.detail.RecordVideoFragment$1.onPreProgress(RecordVideoFragment.java:112)
at com.mingyuechunqiu.recordermanager.ui.widget.CircleProgressButton.onTouchEvent(CircleProgressButton.java:84)
at android.view.View.dispatchTouchEvent(View.java:11776)
at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2968)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2600)
at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2968)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2600)
at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2968)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2600)
at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2968)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2600)
at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2968)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2600)
at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2968)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2600)
at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2968)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2600)
at com.android.internal.policy.DecorView.superDispatchTouchEvent(DecorView.java:448)
at com.android.internal.policy.PhoneWindow.superDispatchTouchEvent(PhoneWindow.java:1829)
at android.app.Activity.dispatchTouchEvent(Activity.java:3307)
at androidx.appcompat.view.WindowCallbackWrapper.dispatchTouchEvent(WindowCallbackWrapper.java:69)
at com.android.internal.policy.DecorView.dispatchTouchEvent(DecorView.java:410)
at android.view.View.dispatchPointerEvent(View.java:12015)
at android.view.ViewRootImpl$ViewPostImeInputStage.processPointerEvent(ViewRootImpl.java:4795)
at android.view.ViewRootImpl$ViewPostImeInputStage.onProcess(ViewRootImpl.java:4609)
at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:4147)
at android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:4200)
at android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:4166)
at android.view.ViewRootImpl$AsyncInputStage.forward(ViewRootImpl.java:4293)
at android.view.ViewRootImpl$InputStage.apply(ViewRootImpl.java:4174)
at android.view.ViewRootImpl$AsyncInputStage.apply(ViewRootImpl.java:4350)
at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:4147)
at android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:4200)
at android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:4166)
at android.view.ViewRootImpl$InputStage.apply(ViewRootImpl.java:4174)
at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:4147)
at android.view.ViewRootImpl.deliverInputEvent(ViewRootImpl.java:6661)
at android.view.ViewRootImpl.doProcessInputEvents(ViewRootImpl.java:6635)
at android.view.ViewRootImpl.enqueueInputEvent(ViewRootImpl.java:6596)
at android.view.ViewRootImpl$WindowInputEventReceiver.onInputEvent(ViewRootImpl.java:6764)
at android.view.InputEventReceiver.dispatchInputEvent(InputEventReceiver.java:186)
at android.os.MessageQueue.nativePollOnce(Native Method)
at android.os.MessageQueue.next(MessageQueue.java:325)
at android.os.Looper.loop(Looper.java:142)
at android.app.ActivityThread.main(ActivityThread.java:6494)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:438)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:807)
Back traces ends.

录制视频后。视频镜像反转

你好,请问一下,如果不使用libyuv库 进行镜像反转的话,还有什么方法解决前置摄像头录制视频后,视频呈现镜像反转的问题,有没有尽量使用原生的API解决的方法?

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.