android video trimmer
1.7.19
สำหรับการนำไปปฏิบัติ โปรดดูที่โครงการตัวอย่าง
build.gradle
ของแอปของคุณ // replace x.y.z with latest available jitpack version
dependencies {
implementation ' com.github.a914-gowtham:android-video-trimmer:x.y.z '
}
build.gradle
ของโปรเจ็กต์: allprojects {
repositories {
maven { url ' https://jitpack.io ' }
}
}
//Java
ActivityResultLauncher < Intent > startForResult = registerForActivityResult (
new ActivityResultContracts . StartActivityForResult (),
result -> {
if ( result . getResultCode () == Activity . RESULT_OK &&
result . getData () != null ) {
Uri uri = Uri . parse ( TrimVideo . getTrimmedVideoPath ( result . getData ()));
Log . d ( TAG , "Trimmed path:: " + uri );
} else
LogMessage . v ( "videoTrimResultLauncher data is null" );
});
// Kotlin
val startForResult = registerForActivityResult( ActivityResultContracts . StartActivityForResult ()) {
result : ActivityResult ->
if (result.resultCode == Activity . RESULT_OK &&
result.getData() != null ) {
Uri uri = Uri .parse( TrimVideo .getTrimmedVideoPath(result.getData()))
Log .d( TAG , " Trimmed path:: " + uri)
} else
LogMessage .v( " videoTrimResultLauncher data is null " );
}
TrimVideo . activity ( String . valueOf ( videoUri ))
. setHideSeekBar ( true )
. start ( this , startForResult );
TrimVideo . activity ( String . valueOf ( videoUri ))
. setHideSeekBar ( true )
. start ( this , startForResult );
TrimVideo . activity ( String . valueOf ( videoUri ))
. setAccurateCut ( true )
. setHideSeekBar ( true )
. start ( this , startForResult );
. setCompressOption ( new CompressOption ( frameRate , bitRate , width , height )) //pass empty constructor for default compressoption
FrameRate
ที่แนะนำ frameRate คือ 30BitRate
สามารถอยู่ระหว่าง 150k ถึง 1,000k หรือ 1M ถึง 10M บิตเรตที่ต่ำกว่าอาจลดคุณภาพและขนาดของวิดีโอ ใช้ 1M เพื่อเอาต์พุตที่มีคุณภาพเหมาะสมWidth
กว้าง ความกว้างของวิดีโอเอาท์พุตวิดีโอHeight
ของวิดีโอเอาท์พุต TrimmerUtils.getVideoWidthHeight(this,Uri.parse(videoUri));
วิธีการรับความกว้างและความสูงของวิดีโอ TrimVideo . activity ( String . valueOf ( videoUri ))
. setCompressOption ( new CompressOption ( 30 , "1M" , 460 , 320 )) //pass empty constructor for default compress values
. setHideSeekBar ( true )
. start ( this , startForResult );
//You could divide the width and height by 2. when try to compress a large resolution videos ex:Taken from camera
/*int[] wAndh=TrimmerUtils.getVideoWidthHeight(this,Uri.parse(videoUri));
int width=wAndh[0];
int height=wAndh[1];
if(wAndh[0]>800){
width/=2;
width/=2;
.setCompressOption(new CompressOption(30,"1M",width,height))
}else
.setCompressOption(new CompressOption(30,"400k",width,height))
*/
. setHideSeekBar ( true ) //default value is false
TrimVideo . activity ( videoUri )
. start ( this , startForResult );
TrimVideo . activity ( videoUri )
. setTrimType ( TrimType . FIXED_DURATION )
. setFixedDuration ( 30 ) //seconds
. start ( this , startForResult );
TrimVideo . activity ( videoUri )
. setTrimType ( TrimType . MIN_DURATION )
. setMinDuration ( 30 ) //seconds
. start ( this , startForResult );
TrimVideo . activity ( videoUri )
. setTrimType ( TrimType . MIN_MAX_DURATION )
. setMinToMax ( 10 , 30 ) //seconds
. start ( this , startForResult );
- dontwarn com.gowtham.library **
- keep class com.gowtham.library ** { * ; }
- keep interface com.gowtham.library ** { * ; }
ห้องสมุดนี้ได้รับอนุญาตภายใต้ใบอนุญาต MIT
ไลบรารีนี้ใช้ FFmpeg ซึ่งได้รับอนุญาตภายใต้ LGPL v3.0
คุณสามารถรับซอร์สโค้ดสำหรับ FFmpeg ได้จาก https://github.com/arthenica/ffmpeg-kit
หากคุณต้องการแทนที่หรือแก้ไขไลบรารี FFmpeg ที่ใช้ในโปรเจ็กต์นี้ ให้ทำตามขั้นตอนเหล่านี้:
library/build.gradle
แสดงการสนับสนุนของคุณโดยให้ดาวแก่พื้นที่เก็บข้อมูลนี้
มีหลายวิธีในการปรับปรุงและเพิ่มคุณสมบัติเพิ่มเติม ดังนั้นอย่าลังเลที่จะทำงานร่วมกับแนวคิด ปัญหา และ/หรือดึงคำขอ