Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/video/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 使用libmedia播放加密视频时会暂停复制_Android_Video_Encryption - Fatal编程技术网

Android 使用libmedia播放加密视频时会暂停复制

Android 使用libmedia播放加密视频时会暂停复制,android,video,encryption,Android,Video,Encryption,我的应用程序在使用libmedia播放20分钟加密视频时出现问题。一开始一切都很好:图书馆工作并播放加密视频。。。但在6分钟后,复制会在20秒内暂停,然后视频会在4分钟内继续播放并再次暂停,20秒后重新启动并再次暂停。。。等等 视频在安卓4.1上播放,大小为80MB,使用AES加密。这是我们在“onCreate”方法末尾使用的代码: 似乎视频在此暂停时再次解密。。。但我不知道为什么。问题在于密码。getInstance(“AES/CBC/PKCS5Padding”)它不是流密码,而是分组密码 使

我的应用程序在使用libmedia播放20分钟加密视频时出现问题。一开始一切都很好:图书馆工作并播放加密视频。。。但在6分钟后,复制会在20秒内暂停,然后视频会在4分钟内继续播放并再次暂停,20秒后重新启动并再次暂停。。。等等

视频在安卓4.1上播放,大小为80MB,使用AES加密。这是我们在“onCreate”方法末尾使用的代码:


似乎视频在此暂停时再次解密。。。但我不知道为什么。

问题在于
密码。getInstance(“AES/CBC/PKCS5Padding”)
它不是流密码,而是分组密码


使用
Cipher.getInstance(“AES/CFB/NoPadding”)
解决问题。

它的性能好吗?使用此加密算法的库?在开始播放视频(45MB)之前,我大约需要20秒。是的,性能非常好。你不需要等待。试试看!是的。这个性能问题发生在我身上。在开始播放视频(45MB)之前,我需要大约20秒。你好,埃斯特班,我也在使用同一个库来播放加密视频。我可以播放150MB左右的视频,没有任何问题。但如果视频超过150MB,则根本无法播放。我在这里贴了一个问题。请帮助meSorry Prabhu,我从来没有尝试过超过90MB的视频,我不知道有什么问题。尝试向libeasy支持发送电子邮件,他们帮助了我。
private void startVideo() {

    mVideoView.requestFocus();
    mVideoView.setOnCompletionListener(new MediaPlayer.OnCompletionListener() {

        @Override
        public void onCompletion(MediaPlayer mp) {              
            finish();                    
        }           
    });

    try{
        SecretKeySpec skey = new SecretKeySpec("XXXXXxxxxxXXXXXX".getBytes(), "AES");     
        Cipher cipher = Cipher.getInstance("AES/CBC/PKCS5Padding");
        cipher.init(Cipher.DECRYPT_MODE, skey,new IvParameterSpec(new byte[16]));   

        Licensing.allow(this);
        mServer = new LocalSingleHttpServer();        

        mServer.setCipher(cipher);
        mServer.start();           

        String serverPath = mServer.getURL("myvideopath");      
        mVideoView.setVideoPath(serverPath);
        mVideoView.setMediaController(mMediaController);
        mVideoView.start();  

    }catch(Exception e){
        e.printStackTrace();
    }

    mVideoView.setMediaController(null);
}