Closed mishra0007 closed 3 years ago
This is my code
`VideoCompressor.start(String.valueOf(contentURI), "/storage/emulated/0/download", new CompressionListener() { @Override public void onStart() { videoView.start(); progressBar.setMax(100); }
@Override
public void onSuccess() {
videoView.stopPlayback();
Toast.makeText(MainActivity.this, "Your Video Compressed Successfully", Toast.LENGTH_SHORT).show();
}
@Override
public void onFailure(String s) {
videoView.pause();
Toast.makeText(MainActivity.this, s, Toast.LENGTH_SHORT).show();
System.out.println(s);
}
@Override
public void onProgress(float v) {
progressBar.setProgress((int) v);
}
@Override
public void onCancelled() {
videoView.pause();
}
});`
Please have a look at the sample app. And use the latest version of the library.
First, check whether you have implemented scoped storage logic in-app. You can also use android:requestLegacyExternalStorage="true" But this legacyStoragePermission is limited to version 10. You need to implement scoped logic.
Also, check whether your targetSDKVersion value is 30 or greater or not, this is needed if you are using the app in Device android version 30 or more.
I have provided 4 permission
uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE uses-permission android:name="android.permission.ACCESS_MEDIA_LOCATION uses-permission android:name="android.permission.CAMERA
and even given permission to my testing device.
D/path: /storage/emulated/0/download/Class 12 Maths - Continuity and Differentiation - Reuploaded (first video freezed on YouTube).mp4 W/System.err: java.io.FileNotFoundException: /storage/emulated/0/download/Class 12 Maths - Continuity and Differentiation - Reuploaded (first video freezed on YouTube).mp4: open failed: EACCES (Permission denied) W/System.err: at libcore.io.IoBridge.open(IoBridge.java:496) at java.io.FileInputStream.(FileInputStream.java:159) at com.example.video_compressor.MainActivity.saveVideoToInternalStorage(MainActivity.java:175) at com.example.video_compressor.MainActivity.onActivityResult(MainActivity.java:111) at android.app.Activity.dispatchActivityResult(Activity.java:8249) at android.app.ActivityThread.deliverResults(ActivityThread.java:4931) at android.app.ActivityThread.handleSendResult(ActivityThread.java:4979) at android.app.servertransaction.ActivityResultItem.execute(ActivityResultItem.java:51) at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:135) at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:95) W/System.err: at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2044) at android.os.Handler.dispatchMessage(Handler.java:107) at android.os.Looper.loop(Looper.java:224) at android.app.ActivityThread.main(ActivityThread.java:7562) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:539) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:950) Caused by: android.system.ErrnoException: open failed: EACCES (Permission denied) W/System.err: at libcore.io.Linux.open(Native Method) at libcore.io.ForwardingOs.open(ForwardingOs.java:167) at libcore.io.BlockGuardOs.open(BlockGuardOs.java:252) at libcore.io.ForwardingOs.open(ForwardingOs.java:167) at android.app.ActivityThread$AndroidOs.open(ActivityThread.java:7461) at libcore.io.IoBridge.open(IoBridge.java:482) ... 16 more D/MediaPlayer: currentOpPackageName=com.example.video_compressor I/System.out: Source path: content://com.miui.gallery.open/raw/%2Fstorage%2Femulated%2F0%2Fdownload%2FClass%2012%20Maths%20-%20Continuity%20and%20Differentiation%20-%20Reuploaded%20(first%20video%20freezed%20on%20YouTube).mp4 can be invalid! or you don't have READ_EXTERNAL_STORAGE permission I/Toast: Show toast from OpPackageName:com.example.video_compressor, PackageName:com.example.video_compressor D/MediaPlayerNative: getMetadata V/MediaPlayer: resetDrmState: mDrmInfo=null mDrmProvisioningThread=null mPrepareDrmInProgress=false mActiveDrmScheme=false cleanDrmObj: mDrmObj=null mDrmSessionId=null V/MediaPlayer: resetDrmState: mDrmInfo=null mDrmProvisioningThread=null mPrepareDrmInProgress=false mActiveDrmScheme=false cleanDrmObj: mDrmObj=null mDrmSessionId=null W/System: A resource failed to call close. W/System: A resource failed to call close.