werbhelius / mediautils Goto Github PK
View Code? Open in Web Editor NEWMediaUtils : a demo of record audio and video.
MediaUtils : a demo of record audio and video.
demo下载直接运行 我用三个测试机测试,华为是7.0正常的,小米4.4也是正常的,三星note3 5.0 进入录像界面,demo中自定义的progressBar 控件有问题,长按没有绿色的进度条显示,双击放大崩溃。
小米4录制视频,第一次长按没反应,进度条也不走;第二次就直接奔溃,导致系统的拍照都没用了,只能重启手机,这个问题非常严重,希望能够得到修复
项目不错,怎么不更新了呢?
你好,能加上摄像头切换的功能吗? 我之前自己写的加上摄像头切换后, 刚录制就报start failed: -19
三星8.0 录制没反应,双击闪退
如题,这个该怎么设置?谢谢
我看了半天 还是没找到录制时间的设置....
现在找到了... 但是这个值应该设置成自定义, 并且和动画绑定上...
您好,我想向您咨询一下,视频录制完成后,如果进行播放视频操作的思路。
我直接在MediaUtils的stopRecordSave方法中声明MediaPlayer并且用来播放之前录制的视频,但是一直不成功,提示状态不对,请问您知道什么方法去解决这个问题吗?
感谢!
在也可直接点击下载体验的demo.apk中,视频录制完在循环播放界面时,按home键进入后台,再进入应用。会先在MainActivity闪烁一次,再显示视频播放界面,有办法让MainActivity不显示吗?另外引用你的库去执行上述操作会出现闪退,提示的是
ava.lang.RuntimeException: getParameters failed (empty parameters)
at android.hardware.Camera.native_getParameters(Native Method)
at android.hardware.Camera.getParameters(Camera.java:1890)
at com.cjt2325.cameralibrary.JCameraView.startRecord(JCameraView.java:464)
at com.cjt2325.cameralibrary.JCameraView.access$900(JCameraView.java:33)
at com.cjt2325.cameralibrary.JCameraView$1.record(JCameraView.java:145)
at com.cjt2325.cameralibrary.CaptureButton$RecordRunnable.run(CaptureButton.java:349)
at android.os.Handler.handleCallback(Handler.java:739)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:148)
at android.app.ActivityThread.main(ActivityThread.java:5417)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)
在这里加判断试试:
if (focusModes != null) {
for (String mode : focusModes) {
if (mode.contains("continuous-video")) {
parameters.setFocusMode("continuous-video");
}
}
}
mCamera.setParameters(parameters);
报错原因:需要验证,相机是否支持聚焦模式。
7.0上视频和音频都会在创建之后自动删除
RT
之前所说的问题已经解决了,是我忘记动态添加权限导致的,以为是Android6.0的系统,所以没有动态添加对应的权限,从而导致拍照崩溃
i solove this bug。
File file =Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_MOVIES);
if (!file.exists()){
file.mkdir();
}
小米没有这个movies文件夹你们使用这个框架钱创建一个文件夹就行了
07-10 21:29:42.082 2325-2325/com.werb.mediautilsdemo W/art: Before Android 4.1, method android.graphics.PorterDuffColorFilter android.support.graphics.drawable.VectorDrawableCompat.updateTintFilter(android.graphics.PorterDuffColorFilter, android.content.res.ColorStateList, android.graphics.PorterDuff$Mode) would have incorrectly overridden the package-private method in android.graphics.drawable.Drawable
07-10 21:29:42.340 2325-2325/com.werb.mediautilsdemo E/HAL: load: id=gralloc != hmi->id=gralloc
07-10 21:29:42.399 2325-2533/com.werb.mediautilsdemo E/HAL: load: id=gralloc != hmi->id=gralloc
07-10 21:29:42.399 2325-2533/com.werb.mediautilsdemo I/OpenGLRenderer: Initialized EGL, version 1.4
07-10 21:29:42.405 2325-2533/com.werb.mediautilsdemo W/OpenGLRenderer: load: so=/system/lib64/libhwuibp.so
dlopen failed: library "/system/lib64/libhwuibp.so" not found
07-10 21:29:42.405 2325-2533/com.werb.mediautilsdemo W/OpenGLRenderer: Initialize Binary Program Cache: Load Failed
07-10 21:29:42.406 2325-2533/com.werb.mediautilsdemo E/HAL: load: id=gralloc != hmi->id=gralloc
07-10 21:29:42.465 2325-2325/com.werb.mediautilsdemo W/art: Before Android 4.1, method int android.support.v7.widget.ListViewCompat.lookForSelectablePosition(int, boolean) would have incorrectly overridden the package-private method in android.widget.ListView
07-10 21:29:44.044 2325-2325/com.werb.mediautilsdemo E/Camera: Camera new cameraInitNormal:0
07-10 21:29:52.605 2325-2325/com.werb.mediautilsdemo I/HwMediaPermWrapper: confirmCameraPermission, blocked:false
https://jitpack.io/
用这个来构建开源的项目比较正规一些,可以直接在gradle里面配置
// 这里是重点,分辨率和比特率
// 分辨率越大视频大小越大,比特率越大视频越清晰
// 清晰度由比特率决定,视频尺寸和像素量由分辨率决定
// 比特率越高越清晰(前提是分辨率保持不变),分辨率越大视频尺寸越大。
profile.videoFrameWidth = 720; //修改了这里
profile.videoFrameHeight = 1080; //修改了这里
// 这样设置 1080p的视频 大小在5M , 可根据自己需求调节
profile.videoBitRate = 2 * optimalSize.width * optimalSize.height;
异常:
05-16 18:00:36.996 18961-18961/com.werb.mediautilsdemo W/System.err: java.lang.RuntimeException: unlock failed
05-16 18:00:36.997 18961-18961/com.werb.mediautilsdemo W/System.err: at android.hardware.Camera.unlock(Native Method)
05-16 18:00:36.997 18961-18961/com.werb.mediautilsdemo W/System.err: at com.werb.mediautilsdemo.MediaUtils.prepareRecord(MediaUtils.java:141)
05-16 18:00:36.997 18961-18961/com.werb.mediautilsdemo W/System.err: at com.werb.mediautilsdemo.MediaUtils.startRecordThread(MediaUtils.java:299)
05-16 18:00:36.997 18961-18961/com.werb.mediautilsdemo W/System.err: at com.werb.mediautilsdemo.MediaUtils.record(MediaUtils.java:132)
05-16 18:00:36.997 18961-18961/com.werb.mediautilsdemo W/System.err: at com.werb.mediautilsdemo.activity.VideoRecorderActivity$2.onTouch(VideoRecorderActivity.java:92)
修改videoFrameRate无法录制
你这代码能实现音视频同步吗?
兼容性有问题
VOIP calls not recorded throught this library
视频无法录制,各种崩溃。
09-29 15:33:37.464 6471-6471/? I/art: Late-enabling -Xcheck:jni
09-29 15:33:37.524 6471-6471/com.werb.mediautilsdemo W/System: ClassLoader referenced unknown path: /data/app/com.werb.mediautilsdemo-1/lib/arm
09-29 15:33:37.551 6471-6471/com.werb.mediautilsdemo W/art: Before Android 4.1, method android.graphics.PorterDuffColorFilter android.support.graphics.drawable.VectorDrawableCompat.updateTintFilter(android.graphics.PorterDuffColorFilter, android.content.res.ColorStateList, android.graphics.PorterDuff$Mode) would have incorrectly overridden the package-private method in android.graphics.drawable.Drawable
09-29 15:33:37.577 6471-6471/com.werb.mediautilsdemo V/BoostFramework: mAcquireFunc method = public int com.qualcomm.qti.Performance.perfLockAcquire(int,int[])
09-29 15:33:37.577 6471-6471/com.werb.mediautilsdemo V/BoostFramework: mReleaseFunc method = public int com.qualcomm.qti.Performance.perfLockRelease()
09-29 15:33:37.578 6471-6471/com.werb.mediautilsdemo V/BoostFramework: mAcquireTouchFunc method = public int com.qualcomm.qti.Performance.perfLockAcquireTouch(android.view.MotionEvent,android.util.DisplayMetrics,int,int[])
09-29 15:33:37.578 6471-6471/com.werb.mediautilsdemo V/BoostFramework: mIOPStart method = public int com.qualcomm.qti.Performance.perfIOPrefetchStart(int,java.lang.String)
09-29 15:33:37.578 6471-6471/com.werb.mediautilsdemo V/BoostFramework: mIOPStop method = public int com.qualcomm.qti.Performance.perfIOPrefetchStop()
09-29 15:33:37.580 6471-6471/com.werb.mediautilsdemo V/BoostFramework: BoostFramework() : mPerf = com.qualcomm.qti.Performance@2e36d7e
09-29 15:33:37.580 6471-6471/com.werb.mediautilsdemo V/BoostFramework: BoostFramework() : mPerf = com.qualcomm.qti.Performance@3a632df
09-29 15:33:37.620 6471-6499/com.werb.mediautilsdemo D/OpenGLRenderer: Use EGL_SWAP_BEHAVIOR_PRESERVED: true
09-29 15:33:37.625 6471-6471/com.werb.mediautilsdemo D/ActivityThreadInjector: clearCachedDrawables.
09-29 15:33:37.662 6471-6499/com.werb.mediautilsdemo I/Adreno-EGL: <qeglDrvAPI_eglInitialize:379>: EGL 1.4 QUALCOMM build: AU_LINUX_ANDROID_LA.BF.1.1.3_RB1.06.00.01.181.013_msm8974_refs/tags/AU_LINUX_ANDROID_LA.BF.1.1.3_RB1.06.00.01.181.013__release_AU (I48a9d37399)
OpenGL ES Shader Compiler Version: E031.29.00.00
Build Date: 11/17/16 Thu
Local Branch:
Remote Branch: refs/tags/AU_LINUX_ANDROID_LA.BF.1.1.3_RB1.06.00.01.181.013
Local Patches: NONE
Reconstruct Branch: NOTHING
09-29 15:33:37.664 6471-6499/com.werb.mediautilsdemo I/OpenGLRenderer: Initialized EGL, version 1.4
还有,程序无响应的问题出现了
三星note4,note5都无法切换摄像头
设置的video 720*1280 但是点击录制的时候surfview就拉伸了,请问你大概猜到什么原因嘛
看了日志是 mCamera.unlock() 方法报错了
网上没找到解决方法。。
求作者大大解答下
小米手机2s 5.0系统 点击录制按钮没反应,进度条也没有
错误日志如下:
Exception dispatching input event.
Exception in MessageQueue callback: handleReceiveCallback
java.lang.RuntimeException: getParameters failed (empty parameters)
at android.hardware.Camera.native_getParameters(Native Method)
at android.hardware.Camera.getParameters(Camera.java:2124)
at com.kanq.camera.MediaUtils.setZoom(MediaUtils.java:329)
at com.kanq.camera.MediaUtils.access$1(MediaUtils.java:327)
at com.kanq.camera.MediaUtils$ZoomGestureListener.onDoubleTap(MediaUtils.java:317)
at android.view.GestureDetector.onTouchEvent(GestureDetector.java:523)
at com.kanq.camera.MediaUtils$1.onTouch(MediaUtils.java:85)
at android.view.View.dispatchTouchEvent(View.java:8548)
at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2408)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2050)
at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2408)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2050)
at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2408)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2050)
at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2408)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2050)
at com.android.internal.policy.impl.PhoneWindow$DecorView.superDispatchTouchEvent(PhoneWindow.java:2390)
at com.android.internal.policy.impl.PhoneWindow.superDispatchTouchEvent(PhoneWindow.java:1734)
at android.app.Activity.dispatchTouchEvent(Activity.java:2838)
at com.android.internal.policy.impl.PhoneWindow$DecorView.dispatchTouchEvent(PhoneWindow.java:2351)
楼主,华为meta9怎么没法录制呢,进入录制界面,长按没法录制
录制完之后,视频很大,如何压缩?
你好作者,我在之前也开发过视频录制的Demo,但是在遇到切换成前置摄像头的时候报错,并且是7.0及以上的系统就会报错,作者知道有什么解决的方法吗?相互学习,感激不尽!
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.