예제 #1
0
  @Override
  protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    if (resultCode == RESULT_CANCELED) {
      onBackPressed();
    }
    if (requestCode == REQUEST_VIDEO_CAPTURE && resultCode == RESULT_OK) {
      long createdAt = HelpMe.getCurrentTime();
      String filePath =
          Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_MOVIES)
                  .getAbsolutePath()
              + "/vid_"
              + TJPreferences.getUserId(this)
              + "_"
              + TJPreferences.getActiveJourneyId(this)
              + "_"
              + createdAt
              + ".mp4";
      try {
        AssetFileDescriptor videoAsset =
            getContentResolver().openAssetFileDescriptor(data.getData(), "r");
        FileInputStream fis = videoAsset.createInputStream();

        File root =
            new File(
                Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_MOVIES)
                    .getAbsolutePath());

        if (!root.exists()) {
          root.mkdirs();
        }

        File file;
        file = new File(filePath);

        FileOutputStream fos = new FileOutputStream(file);

        byte[] buf = new byte[1024];
        int len;
        while ((len = fis.read(buf)) > 0) {
          fos.write(buf, 0, len);
        }
        fis.close();
        fos.close();
      } catch (Exception e) {
        e.printStackTrace();
      }

      /*            Uri videoUri = data.getData();
      Log.d(TAG, "video saved at" + videoUri);
      Log.d(TAG, "Real path URI" + getRealPathFromURI(videoUri));*/

      Intent i = new Intent(this, VideoPreview.class);
      i.putExtra("VIDEO_PATH", filePath);
      i.putExtra("CREATED_AT", createdAt);
      startActivity(i);
      finish();
    }
  }