how to decode video from base64?

时间秒杀一切 提交于 2021-02-18 15:06:16

问题


I want convert video in base64 String so i convert migBase64 Method through my video in android it convert video to string successfully but when i decode String to Video then it not proper converting in video. so please help me if anyone knows.

i try code like below:

      String encodedString;

    //Decode Video To String

          File tempFile = new File(Environment.getExternalStorageDirectory()+ "/my/part/my_0.mp4");

                byte fileContent[] = new byte[3000];

                try {
                    FileInputStream fin = new FileInputStream(tempFile);
                    while (fin.read(fileContent) >= 0) {

                        // b.append(Base64.encodeToString(fileContent, true));

                        encodedString = Base64.encodeToString(fileContent, true);

                    }
                } catch (IOException e) {

                }
//Encoding Video To String Successfully.

//Decode String To Video

   try {

            byte[] decodedBytes = Base64.decodeF
            File file2 = new File(Environment.getExternalStorageDirectory()
                    + "/my/Converted.mp4");
            FileOutputStream os = new FileOutputStream(file2, true);
            os.write(decodedBytes);
            os.close();

        } catch (Exception e) {
            // TODO: handle exception
            Log.e("Error", e.toString());
        }
// Problem is in Decoding.

my problem is decoding string to video, my original video is 1 MB and after decoding video is 1.1 kb it not convert my original video please help me.


回答1:


I solve my problem, i post code for someone help.

//Encode Video To String With mig Base64.

    File tempFile = new File(Environment.getExternalStorageDirectory()
                + "/my/part/my_0.mp4");
        String encodedString = null;

        InputStream inputStream = null;
        try {
            inputStream = new FileInputStream(tempFile);
        } catch (Exception e) {
            // TODO: handle exception
        }
        byte[] bytes;
        byte[] buffer = new byte[8192];
        int bytesRead;
        ByteArrayOutputStream output = new ByteArrayOutputStream();
        try {
            while ((bytesRead = inputStream.read(buffer)) != -1) {
                output.write(buffer, 0, bytesRead);
            }
        } catch (IOException e) {
            e.printStackTrace();
        }
        bytes = output.toByteArray();
        encodedString = Base64.encodeToString(bytes, true);
        Log.i("Strng", encodedString);


//Decode String To Video With mig Base64.
        byte[] decodedBytes = Base64.decodeFast(encodedString.getBytes());

        try {

            FileOutputStream out = new FileOutputStream(
                    Environment.getExternalStorageDirectory()
                            + "/my/Convert.mp4");
            out.write(decodedBytes);
            out.close();
        } catch (Exception e) {
            // TODO: handle exception
            Log.e("Error", e.toString());

        }


来源:https://stackoverflow.com/questions/26842768/how-to-decode-video-from-base64

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!