|
7 | 7 | import android.os.Bundle; |
8 | 8 | import android.os.ParcelFileDescriptor; |
9 | 9 | import android.os.SystemClock; |
| 10 | +import android.support.v4.content.FileProvider; |
10 | 11 | import android.util.Log; |
11 | 12 | import android.view.Menu; |
12 | 13 | import android.view.MenuItem; |
|
26 | 27 |
|
27 | 28 | public class TranscoderActivity extends Activity { |
28 | 29 | private static final String TAG = "TranscoderActivity"; |
| 30 | + private static final String FILE_PROVIDER_AUTHORITY = "net.ypresto.androidtranscoder.example.fileprovider"; |
29 | 31 | private static final int REQUEST_CODE_PICK = 1; |
30 | 32 | private static final int PROGRESS_BAR_MAX = 1000; |
31 | 33 | private Future<Void> mFuture; |
@@ -55,7 +57,10 @@ protected void onActivityResult(int requestCode, int resultCode, Intent data) { |
55 | 57 | final File file; |
56 | 58 | if (resultCode == RESULT_OK) { |
57 | 59 | try { |
58 | | - file = File.createTempFile("transcode_test", ".mp4", getExternalFilesDir(null)); |
| 60 | + File outputDir = new File(getExternalFilesDir(null), "outputs"); |
| 61 | + //noinspection ResultOfMethodCallIgnored |
| 62 | + outputDir.mkdir(); |
| 63 | + file = File.createTempFile("transcode_test", ".mp4", outputDir); |
59 | 64 | } catch (IOException e) { |
60 | 65 | Log.e(TAG, "Failed to create temporary file.", e); |
61 | 66 | Toast.makeText(this, "Failed to create temporary file.", Toast.LENGTH_LONG).show(); |
@@ -89,7 +94,10 @@ public void onTranscodeProgress(double progress) { |
89 | 94 | public void onTranscodeCompleted() { |
90 | 95 | Log.d(TAG, "transcoding took " + (SystemClock.uptimeMillis() - startTime) + "ms"); |
91 | 96 | onTranscodeFinished(true, "transcoded file placed on " + file, parcelFileDescriptor); |
92 | | - startActivity(new Intent(Intent.ACTION_VIEW).setDataAndType(Uri.fromFile(file), "video/mp4")); |
| 97 | + Uri uri = FileProvider.getUriForFile(TranscoderActivity.this, FILE_PROVIDER_AUTHORITY, file); |
| 98 | + startActivity(new Intent(Intent.ACTION_VIEW) |
| 99 | + .setDataAndType(uri, "video/mp4") |
| 100 | + .setFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION)); |
93 | 101 | } |
94 | 102 |
|
95 | 103 | @Override |
|
0 commit comments