qq_27790011
程序员爱酸奶(QuellanAn)
采纳率33.3%
2018-12-06 03:27

大视频为什么在安卓APP上播放一会就卡死

5

1.我在java中上传视频文件,大概150M左右,上传成功后在项目web端网页上访问
是可以流畅播放的。
2.但是在项目APP端播放就出现问题,播放了几秒钟后就卡死了。
3.然后我测试小视频15M,web端和app端都能正常播放,这个是什么原因呢?
找不到原因的我,只能在视频上传的时候把视频做压缩处理,进行压缩处理后,APP端和web端都能正常播放,但是做压缩处理的过程就很慢,导致接口响应过长超时。大神们改怎么处理。我
的压缩代码:

private void videoCompressToMP4(String sourcePath,String targetPath){
        Log.info("url=="+sourcePath+",,,"+targetPath);
        File source = new File(sourcePath);
        File target = new File(targetPath);
        try {
            log.info("压缩转换开始:");
            AudioAttributes audio= new AudioAttributes();
            audio.setCodec("libmp3lame");
            audio.setBitRate(new Integer(56000));
            audio.setChannels(new Integer(1));
            audio.setSamplingRate(new Integer(22050));
            VideoAttributes video=new VideoAttributes();
            video.setCodec("mpeg4");
            video.setBitRate(new Integer(800000));
            video.setFrameRate(new Integer(15));
            video.setSize(new VideoSize(400, 300));
            EncodingAttributes attr=new EncodingAttributes();
            attr.setFormat("mp4");
            attr.setAudioAttributes(audio);
            attr.setVideoAttributes(video);
            Encoder encoder=new Encoder();
            encoder.encode(source, target, attr);
            log.info("压缩转换成功--结束,路径:"+targetPath);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

但是这个效率很低感觉,150M的得耗时60秒左右,怎么优化。
或者解决根本问题,为什么大视频在APP端播放几秒钟就不能播放啊,小视频ok.

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享
  • 邀请回答

5条回答

  • qq_31492865 阳光纯粹 3年前

    app端的video控件只能播放小视频,视频过大的话会有你这问题发生,app端视频之类的都采用第三方库,毕竟是经过时间的检验的,网上第三方库很多,我推荐你用哔哩哔哩的第三方库,纯免费的,这也是现在国内挨app视频类的主流库,地址是:https://github.com/Bilibili/ijkplayer

    点赞 评论 复制链接分享
  • qq_34872748 L星火燎原 3年前

    感觉应该将150M切分中N份,别一起加载到APP播放,毕竟耗内存耗CPU。

    点赞 评论 复制链接分享
  • qq1053781225 apples_kk 3年前

    建议android端换个解码库,可以试试vlc解码
    先安装vlc播放器,播放未压缩视频,若不卡顿那就是原有解码库有问题的

    点赞 评论 复制链接分享
  • YU_Cheng_Long 浮生-半日 3年前

    试试可不可以切分开,150M切成三个50M,
    并没有学过安卓,仅仅是一个思路

    点赞 评论 复制链接分享
  • ainiburuqusi ainiburuqusi 3年前

    安卓不太熟,但是java的话会不会跟虚拟机内存有关系 。

    点赞 评论 复制链接分享

相关推荐