zoukankan      html  css  js  c++  java
  • 短视频上传

    https://github.com/maimingliang/WxRecoderVideo

     
     
     
     
     
     
     
    Latest commit 8e3ba72 on 17 Oct @maimingliang committed on GitHub Update README.md
      .idea 第一次修改 2 months ago
      app 修改targetSdkVersion 小于 23 2 months ago
      gradle/wrapper 创建工程 2 months ago
      vitamioRecorderLibrary 第一次修改 2 months ago
      wechatRecoderVideoLibrary 第一次修改 2 months ago
      .gitignore 创建工程 2 months ago
      README.md Update README.md a month ago
      build.gradle 创建工程 2 months ago
      gradle.properties 创建工程 2 months ago
      gradlew 创建工程 2 months ago
      gradlew.bat 创建工程 2 months ago
      img_des1.png add img des 2 months ago
      img_des2.png add img des 2 months ago
      recoder.gif add gif 2 months ago

    README.md

    WxRecoderVideo

    简介

    基于VCamera,仿微信录制短视频

    这里写图片描述

    使用

    1) 在build.gradle,添加wechatRecoderVideoLibrary module 。

    配置manifest

        <uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" />
        <uses-permission android:name="android.permission.INTERNET" />
        <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
        <uses-permission android:name="android.permission.RECORD_AUDIO" />
        <uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS" />
        <uses-permission android:name="android.permission.INTERNET" />
        <uses-permission android:name="android.permission.CAMERA" />
        <uses-permission android:name="android.permission.RECORD_AUDIO" />
        <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
        <uses-permission android:name="android.permission.READ_PHONE_STATE" />
        <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
    • 配置拍摄视频缓存路径
           // 设置拍摄视频缓存路径
            File dcim = Environment
                    .getExternalStoragePublicDirectory(Environment.DIRECTORY_DCIM);
            if (DeviceUtils.isZte()) {
                if (dcim.exists()) {
                    VCamera.setVideoCachePath(dcim + "/recoder/");
                } else {
                    VCamera.setVideoCachePath(dcim.getPath().replace("/sdcard/",
                            "/sdcard-ext/")
                            + "/recoder/");
                }
            } else {
                VCamera.setVideoCachePath(dcim + "/WeChatJuns/");
            }
    
    //      VCamera.setVideoCachePath(FileUtils.getRecorderPath());
            // 开启log输出,ffmpeg输出到logcat
            VCamera.setDebugMode(true);
            // 初始化拍摄SDK,必须
            VCamera.initialize(this);
    • 注册activity
    <application
        ...
       <activity android:name="com.maiml.wechatrecodervideolibrary.recoder.WechatRecoderActivity"
                android:configChanges="orientation|keyboardHidden|screenSize"
                android:hardwareAccelerated="true"
                android:launchMode="singleTop"
                android:screenOrientation="portrait"
                android:theme="@style/CameraTheme"
                />
    </application
    • 调用 WechatRecoderActivity
       WechatRecoderActivity.launchActivity(MainActivity.this,REQ_CODE);
    

    *在 onActivityResult Method 接收结果

        @Override
        protected void onActivityResult(int requestCode, int resultCode, Intent data) {
            super.onActivityResult(requestCode, resultCode, data);
    
            if(RESULT_OK == resultCode){
    
                if(requestCode == REQ_CODE){
                    String videoPath = data.getStringExtra(WechatRecoderActivity.VIDEO_PATH);
    
                    play(videoPath);
                }
    
            }
        }
    

    参数配置

    自定义dialog

    拍摄完成需要对视频进行转码,转码过程中弹出的dialog。

    让你的Activity implements OnDialogListener 例如:

    
     public class MainActivity extends AppCompatActivity implements OnDialogListener{
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
            WechatRecoderActivity.launchActivity(MainActivity.this,REQ_CODE);
         }
    
        /**
         * 处理自定义Dialog 的显示
         * @param context 自定义dialog 依赖的Context,注意:自定义dialog的Context 需要使用这个
         *
         */
        @Override
        public void onShowDialog(Context context) {
    
        }
        /**
         * 处理自定义Dialog 的隐藏
         * @param context 自定义dialog 依赖的Context,注意:自定义dialog的Context 需要使用这个
         *
         */
        @Override
        public void onHideDialog(Context context) {
    
        }
    }
    
    

    配置参数

    nameformatdescription
    recoderTimeMax integer 录制的最长时间
    recoderTimeMin integer 录制的最短时间
    titleBarCancelTextColor integer titleBar取消字体的颜色
    pressBtnColor integer 按住拍字体的颜色
    pressBtnBg integer 圆环的颜色
    lowMinTimeProgressColor integer Progress小于录制最短时间的颜色
    progressColor integer Progress大于录制最短时间的颜色

    注意:颜色值均为 十六进制值,例如:0xFFFC2828

    这里写图片描述

    这里写图片描述

    自定义参数

    
         RecoderAttrs attrs = new RecoderAttrs.Builder()
                                .pressBtnColorBg(0xff00ff00)
                                .titleBarCancelTextColor(0xff00ff00)
                                .pressBtnTextColor(0xff00ff00)
                                .build();
            WechatRecoderActivity.launchActivity(MainActivity.this,attrs,REQ_CODE);
    
    

    Thanks

    VCamera

    关于我

    简书maimingliang

  • 相关阅读:
    cuda cdnn 安装
    神经网络的例子
    理解pytorch几个高级选择函数(如gather)
    opencv 膨胀和腐蚀
    PyPDF2
    百度ocr
    opencv 代码集合
    tesseract cuda pytorch安装
    Vue路由钩子 afterEach beforeEach区别
    (转载)中文区位码、国标码、机内码、输入码、字形码
  • 原文地址:https://www.cnblogs.com/huihuizhang/p/6098457.html
Copyright © 2011-2022 走看看