说到微信,就像是吃饭喝水一样的自然。今天就来讲解一下微信的小视频的制作。
1.需要添加依赖:JCameraView的一个依赖,之前还用过JCVideoPlayer播放视频的依赖,都是很好用的
compile 'cjt.library.wheel:camera:0.1.9'
2.在工程的build下添加
allprojects { repositories { jcenter() maven { url 'https://dl.bintray.com/cjt/maven' } } }3:添加权限
android:name="android.permission.WAKE_LOCK"/>
android:name="android.permission.INTERNET" />
android:name="android.permission.RECORD_AUDIO" />
android:name="android.permission.CAMERA" />
android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
android:name="android.permission.WRITE_SETTINGS" />
android:name="android.hardware.camera" />
android:name="android.hardware.camera.autofocus" />
4:在drawable下建立名为in_camera的xml文件,命名任意,只需在activit中进行引用
xml version="1.0" encoding="utf-8"?>5:在activity中进行设置控件xmlns:android="http://schemas.android.com/apk/res/android" android:width="24dp" android:height="24dp" android:viewportWidth="24.0" android:viewportHeight="24.0"> android:fillColor="#FFFFFFFF" android:pathData="M9,3L7.17,5L4,5c-1.1,0 -2,0.9 -2,2v12c0,1.1 0.9,2 2,2h16c1.1,0 2,-0.9 2,-2L22,7c0,-1.1 -0.9,-2 -2,-2h-3.17L15,3L9,3zM12,18c-2.76,0 -5,-2.24 -5,-5s2.24,-5 5,-5 5,2.24 5,5 -2.24,5 -5,5zM12,17l1.25,-2.75L16,13l-2.75,-1.25L12,9l-1.25,2.75L8,13l2.75,1.25z"/>
android:id="@+id/cameraview"
android:layout_width="match_parent"
android:layout_height="match_parent"
app:iconMargin="20dp"
app:iconWidth="30dp"
app:iconSrc="@drawable/ic_camera"
/>
6:以下就是代码的设置:
//设置activity为全屏幕 View decorView = getWindow().getDecorView(); //获得系统的UI填充整个屏幕 decorView.setSystemUiVisibility(View.SYSTEM_UI_FLAG_FULLSCREEN); //获得 ActionBar的对象 ActionBar actionBar = getSupportActionBar(); //将actionBar进行隐藏 actionBar.hide(); //使用CheckPermissionsUtils工具类进行动态权限获取 CheckPermissionsUtil checkPermissionsUtil = new CheckPermissionsUtil(this); //拿到全部的权限 checkPermissionsUtil.requestAllPermission(this); //创建JCameraView的对象 mJCameraView = (JCameraView) findViewById(R.id.cameraview); //设置视频保存路径(如果不设置默认为Environment.getExternalStorageDirectory().getPath()) mJCameraView.setSaveVideoPath(Environment.getExternalStorageDirectory().getPath()); //设置手动/自动对焦,默认为自动对焦 mJCameraView.setAutoFoucs(false); //设置监听事件 mJCameraView.setCameraViewListener(new JCameraView.CameraViewListener() { @Override public void quit() { //返回按钮的点击时间监听 MainActivity.this.finish(); } @Override public void captureSuccess(Bitmap bitmap) { //获取到拍照成功后返回的Bitmap //将拍摄的照片或视频保存到sd卡下 FileUtil.saveBitmap(bitmap); Log.i("MainActivity","获取到照片Bitmap的宽:" + bitmap.getWidth()); Log.i("MainActivity", "获取到照片Bitmap的高:" + bitmap.getHeight()); } @Override public void recordSuccess(String url) { //获取成功录像后的视频路径 Log.i("MainActivity","视频播放的路径:"+url); } }); } @Override protected void onResume() { super.onResume(); //让生命周期同步,避免一些不必要的错误 mJCameraView.onResume(); } @Override protected void onPause() { super.onPause(); mJCameraView.onPause(); }总结:这样就能简单的实现一个小视频的效果。
//使用JCVideoPlayer进行播放视频
1:添加依赖
compile 'fm.jiecao:jiecaovideoplayer:4.8.3'
2:在布局中添加属性
android:layout_marginTop="5dp"
android:layout_width="match_parent"
android:layout_height="220dp"
android:id="@+id/jcv_media"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
>
3.代码中:
JCVideJCVideoPlayer jcv=(JCVideoPlayerStandard) convertView.findViewById(R.id.jc);
boolean up = jcv.setUp(list.get(position).getMp4_url(), JCVideoPlayer.SCREEN_LAYOUT_LIST, ""); if(up){ //使用了Gilde加载的框架给视频界面附了一张图片 Glide.with(context).load(list.get(position).getCover()).into(holder.jcv.thumbImageView); }