Android——UI篇:关于上次发的博文,6.0以上系统视频压缩出现的各种问题解决。

        上次我发过一篇文章,是关于android端视频压缩的,其实androi端的视频处理,最开始一直都是借用一个FFmpeg一个C语言库来实现的,这个是比较好的解决方法,但是现在实在得感叹一下,现在版本更新太快,有些东西老了,旧了,就得换了,不换还不能用,真的挺无奈,就说这个视频压缩,有些FFmpeg代码在部分手机上是调不起来的,就是因为东西太老了,需要更新,因为本人也是受这个东西的影响,又思考到以后可能还会影响到别的手机也不能使用的情况,所以又在网上找了好久关于视频压缩的方案,最后 ,终于找到一个好方法,应该是国外的大神某位大神写的库,就是关于媒体文件压缩方面的库。这里先附上库的github链接地址:https://github.com/Tourenathan-G5organisation/SiliCompressor

        大体看了一下源码,猜测是根据某种特殊的算法来实现的视频压缩,并没有使用FFmpeg这个C语言库,所以在任何版本的手机上都能执行,自己亲自试了一下,压缩的速度还挺快的,而且压缩完视频清晰度也是不错的,极力推荐使用,最主要的是使用也很方便就是一句代码的事,具体的使用方法请到原文的github上查看,使用方法都有的。

        这里还是得需要注意一下:压缩视频是耗时操作,必须得放进子线程中去执行。示例代码如下:

new Thread() {
            @Override
            public void run() {
                super.run();
                try {
                    /**
                     * 视频压缩
                     * 第一个参数:视频源文件路径
                     * 第二个参数:压缩后视频保存的路径
                     */
                    String comPressPath = SiliCompressor.with(getActivity()).compressVideo(filePath, dirPath);
//                    if (!StringUtil.isEmpty(comPressPath)) {
//                        notCompressedVideo.setCompressPath(comPressPath);
//                        compressVideo();
//                    } else {
//                        stopCompress("失败");
//                    }
                } catch (URISyntaxException e) {
                    e.printStackTrace();
                }
            }
        }.start();

压缩的方法就是这一行代码了,注意这个方法的返回值就是压缩后的视频路径,大家可以根据自己的需求来做调试。

最后,向这位大神致敬。

你可能感兴趣的:(Android——UI篇)