浏览代码

ffmpeg

tags/A.2.3.0.0
李俊才 2 年前
父节点
当前提交
060adfdc5d
共有 13 个文件被更改,包括 214 次插入12 次删除
  1. +23
    -4
      app/build.gradle
  2. +2
    -2
      app/src/ltLandscape/AndroidManifest.xml
  3. 二进制
      app/src/ltLandscape/res/drawable-xhdpi/lt_logo.png
  4. +2
    -2
      app/src/main/AndroidManifest.xml
  5. +181
    -0
      app/src/main/java/com/aispeech/nativedemo/voiceprint/VoicePrintManager.java
  6. 二进制
      app/src/main/res/drawable-xhdpi/logo.png
  7. 二进制
      app/src/main/res/drawable-xhdpi/lt_logo.png
  8. 二进制
      app/src/main/res/drawable-xxhdpi/logo.png
  9. +1
    -1
      app/src/main/res/drawable/launcher_drawable.xml
  10. +1
    -1
      app/src/main/res/layout/activity_launcher.xml
  11. +1
    -1
      app/src/main/res/layout/view_init.xml
  12. +1
    -0
      app/src/main/res/values/strings.xml
  13. +2
    -1
      gradle.properties

+ 23
- 4
app/build.gradle 查看文件

@@ -1,5 +1,9 @@
apply plugin: 'com.android.application'

def VERSION_CODE = 3
def VERSION_NAME = "LT.A.0.9.0.0_20231027"
def flag = "_inner_test"

android {
compileSdkVersion 30
buildToolsVersion '30.0.3'
@@ -8,8 +12,9 @@ android {
applicationId "com.aispeech.nativedemo"
minSdkVersion 26
targetSdkVersion 30
versionCode 3
versionName "LT.A.0.9.0.0_20231027_test"
versionCode VERSION_CODE
versionName VERSION_NAME
flavorDimensions "defalut"

sourceSets {
main { //这个配置是必须的,如果你的so文件放在了libs/armeabi/下,则下面srcDir = libs即可
@@ -23,7 +28,11 @@ android {
}
multiDexEnabled true
vectorDrawables.useSupportLibrary = true
flavorDimensions "channel"

buildConfigField("String", "USER_SAVE_KEY", USER_SAVE_KEY)
buildConfigField("String", "AD_ID", '"946751318"')

manifestPlaceholders = [qqappid: "1108812179", APP_NAME: "@string/app_name"]
}

signingConfigs {
@@ -45,6 +54,12 @@ android {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
signingConfig signingConfigs.release
defaultConfig.versionName = VERSION_NAME
ndk {
// abiFilters "armeabi-v7a", "arm64-v8a", "x86", "x86_64"
abiFilters "armeabi-v7a", "arm64-v8a"
}
manifestPlaceholders = [APP_LOGO: "@drawable/logo"]
}

debug {
@@ -52,6 +67,9 @@ android {
zipAlignEnabled true
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
signingConfig signingConfigs.debug

defaultConfig.versionName = VERSION_NAME + flag
manifestPlaceholders = [APP_LOGO: "@drawable/ic_launcher", APP_NAME: "@string/app_name_debug"]
}
}

@@ -61,7 +79,8 @@ android {
}

ltLandscape {

manifestPlaceholders = [APP_LOGO: "@drawable/lt_logo"]
buildConfigField("String", "AD_ID", '"ltLandscape_ID"')
}

window {


+ 2
- 2
app/src/ltLandscape/AndroidManifest.xml 查看文件

@@ -6,8 +6,8 @@
<application
android:name=".DuiApplication"
android:allowBackup="true"
android:icon="@drawable/lt_logo"
android:label="@string/app_name"
android:icon="${APP_LOGO}"
android:label="${APP_NAME}"
android:supportsRtl="true"
android:theme="@style/AppTheme"
android:usesCleartextTraffic="true"


二进制
app/src/ltLandscape/res/drawable-xhdpi/lt_logo.png 查看文件

之前 之后
宽度: 467  |  高度: 349  |  大小: 18 KiB

+ 2
- 2
app/src/main/AndroidManifest.xml 查看文件

@@ -28,8 +28,8 @@
<application
android:name=".DuiApplication"
android:allowBackup="true"
android:icon="@drawable/lt_logo"
android:label="@string/app_name"
android:icon="${APP_LOGO}"
android:label="${APP_NAME}"
android:supportsRtl="true"
android:theme="@style/AppTheme"
android:usesCleartextTraffic="true"


+ 181
- 0
app/src/main/java/com/aispeech/nativedemo/voiceprint/VoicePrintManager.java 查看文件

@@ -1,9 +1,21 @@
package com.aispeech.nativedemo.voiceprint;

import android.graphics.Bitmap;
import android.graphics.drawable.BitmapDrawable;
import android.graphics.drawable.Drawable;
import android.util.Log;

import androidx.annotation.Nullable;

import com.aispeech.nativedemo.utils.StatusUtils;
import com.bumptech.glide.load.DataSource;
import com.bumptech.glide.load.engine.DiskCacheStrategy;
import com.bumptech.glide.load.engine.GlideException;
import com.bumptech.glide.request.RequestListener;
import com.bumptech.glide.request.target.Target;

import java.io.File;
import java.util.ArrayList;
import java.util.List;

public class VoicePrintManager {
@@ -61,8 +73,177 @@ public class VoicePrintManager {
DeleteFeature.doDeleteFeature(requestUrl, APPID, apiSecret, apiKey, GroupId, "featureId");
/**8.删除声纹特征库*/
DeleteGroup.doDeleteGroup(requestUrl, APPID, apiSecret, apiKey, GroupId);

// EpVideo epVideo = new EpVideo(orignalVideo.getAbsolutePath());
//
// //水印位置大小
// Drawable drawable = context.getDrawable(waterResId);
// BitmapDrawable bd = (BitmapDrawable) drawable;
// Bitmap trb = bd.getBitmap();
// int waterWidth = getWaterPxWH(videoWidth, videoHeigt, trb.getWidth(), trb.getHeight())[0];
// int waterHeigt = getWaterPxWH(videoWidth, videoHeigt, trb.getWidth(), trb.getHeight())[1];
// int waterPx = videoWidth - waterWidth;
// int waterPy = videoHeigt - waterHeigt;
//
// EpDraw draw = new EpDraw(waterCacheFile.getAbsolutePath(), waterPx, waterPy, waterWidth, waterHeigt, false, 0, videoDuration);
// epVideo.addDraw(draw);
// File output = new File(cacheDir, "video_water_" + orignalVideo.getName());
//
// if (output.exists()){
// output.delete();
// }
//
// EpEditor.exec(epVideo, new EpEditor.OutputOption(output.getAbsolutePath()), new OnEditorListener() {
// @Override
// public void onSuccess() {
//
// if (addVideoWaterListener != null){
// addVideoWaterListener.genVideoWatered(new File(output.getAbsolutePath()));
// }
//
// }
//
// @Override
// public void onFailure() {
//
// if (addVideoWaterListener != null){
// addVideoWaterListener.genFaild();
// }
//
// }
//
// @Override
// public void onProgress(final float v) {
//
// }
// });


}

// private void getVideoFrame(String pathInput, int quality) {
// File file = FileUtils.getDiskCacheDir(mActivity, "select_frame_image.jpg");
// String thumbnailFile = file.getAbsolutePath();
// if (file.exists()) {
// FileUtils.deleteFile(thumbnailFile);
// }
// String cmd = "-i "+pathInput+" -y -frames:v 1 -f image2 -q:v "+ quality+" " +thumbnailFile+ " ";
// if (mIsGetFrameExecuting || mSelectBitmap == null) {
// return;
// }
// mIsGetFrameExecuting = true;
// try {
// EpEditor.execCmd(cmd, 0, new OnEditorListener() {
// @Override
// public void onSuccess() {
// mIsGetFrameExecuting = false;
// mActivity.postInUIThread(new Runnable() {
// @Override
// public void run() {
// mActivity.toast("cccc");
// mImageLoader.getManager()
// .load(thumbnailFile)
// .skipMemoryCache(true)
// .diskCacheStrategy(DiskCacheStrategy.NONE)
// .into(mBinding.pictureView);
// }
// });
// }
//
// @Override
// public void onFailure() {
// mIsGetFrameExecuting = false;
// }
//
// @Override
// public void onProgress(float progress) {
//
// }
// });
// } catch (Exception e) {
// Log.e("test", e.getMessage());
// }
// }
//
// private void getVideoFramesInit(String pathInput, long totalTime, int count, int quality) {
//
// if(count < 5)count = 5;
// String size = "80x80";
// String pathOutput = "thumb_frame_image_out.jpg";
// File outFile = FileUtils.getDiskCacheDir(mActivity, pathOutput);
// pathOutput = outFile.getAbsolutePath();
// if (pathOutput.lastIndexOf('.') > 0) {
// pathOutput = pathOutput.substring(0, pathOutput.lastIndexOf('.'));
// }
// List<String> results = new ArrayList<>();
// for(int i=1; i<= count; i++){
// String tempIndex = String.valueOf(i);
// String filename = pathOutput+tempIndex+ ".jpg";
// File file = new File(filename);
// String thumbnailFile = file.getAbsolutePath();
// if (file.exists()) {
// FileUtils.deleteFile(thumbnailFile);
// }
// Log.e("test", "file name " + thumbnailFile);
// results.add(thumbnailFile);
// }
// pathOutput = pathOutput+"%8d"+ ".jpg";
// // callback(List.filled(count, ""));
//
// String cmd = "-i "+pathInput+" -y -f image2 -vf fps=fps=" +count + "/" + totalTime+" -s " + size + " "+ pathOutput;
// EpEditor.execCmd(cmd, 0, new OnEditorListener() {
// @Override
// public void onSuccess() {
// mActivity.postInUIThread(new Runnable() {
// @Override
// public void run() {
// mActivity.toast("ffmpeg frames success");
// if (mVideoThumbFFmpegAdapter == null) {
// mVideoThumbFFmpegAdapter = new VideoEnhanceTrimmerFFmpegAdapter(mActivity, ScreenUtil.dip2px(70.0f), mActivity.getImageLoader());
// mVideoThumbRecyclerView.setAdapter(mVideoThumbFFmpegAdapter);
// }
// mVideoThumbFFmpegAdapter.setData(results);
// int index = results.size() /2;
// String initPath = results.get(index);
// setSelectFrameTime(50);
// mImageLoader.getManager()
// .asBitmap()
// .addListener(new RequestListener<Bitmap>() {
// @Override
// public boolean onLoadFailed(@Nullable GlideException e, Object model, Target<Bitmap> target, boolean isFirstResource) {
// return false;
// }
//
// @Override
// public boolean onResourceReady(Bitmap resource, Object model, Target<Bitmap> target, DataSource dataSource, boolean isFirstResource) {
// mSelectBitmap = resource;
// return false;
// }
// })
// .load(initPath)
// .diskCacheStrategy(DiskCacheStrategy.NONE)
// .into(mBinding.pictureView);
// }
// });
// }
//
// @Override
// public void onFailure() {
// mActivity.postInUIThread(new Runnable() {
// @Override
// public void run() {
// mActivity.toast("ffmpeg frames fail ");
// }
// });
// }
//
// @Override
// public void onProgress(float progress) {
//
// }
// });
// }

public void createGroup() {
/**1.创建声纹特征库*/
new Thread(new Runnable() {


二进制
app/src/main/res/drawable-xhdpi/logo.png 查看文件

之前 之后
宽度: 990  |  高度: 1154  |  大小: 333 KiB

二进制
app/src/main/res/drawable-xhdpi/lt_logo.png 查看文件

之前 之后
宽度: 990  |  高度: 1154  |  大小: 333 KiB 宽度: 467  |  高度: 349  |  大小: 18 KiB

二进制
app/src/main/res/drawable-xxhdpi/logo.png 查看文件

之前 之后
宽度: 71  |  高度: 71  |  大小: 3.1 KiB

+ 1
- 1
app/src/main/res/drawable/launcher_drawable.xml 查看文件

@@ -21,7 +21,7 @@

<bitmap
android:gravity="center"
android:src="@drawable/lt_logo" />
android:src="@drawable/logo" />
</item>

<!-- <item-->


+ 1
- 1
app/src/main/res/layout/activity_launcher.xml 查看文件

@@ -8,7 +8,7 @@
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/lt_logo"
android:src="@drawable/logo"
android:visibility="invisible"
app:layout_constraintDimensionRatio="467:349"
app:layout_constraintBottom_toBottomOf="parent"


+ 1
- 1
app/src/main/res/layout/view_init.xml 查看文件

@@ -12,7 +12,7 @@
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/lt_logo"
android:src="@drawable/logo"
android:visibility="invisible"
app:layout_constraintDimensionRatio="467:349"
app:layout_constraintBottom_toBottomOf="parent"


+ 1
- 0
app/src/main/res/values/strings.xml 查看文件

@@ -1,5 +1,6 @@
<resources>
<string name="app_name">digiMen</string>
<string name="app_name_debug">digiMenDebug</string>
<string name="app_version">0.9.4</string>

<string name="hi_str">Hi,你现在可以说 \"%1$s\" 来唤醒我</string>


+ 2
- 1
gradle.properties 查看文件

@@ -19,4 +19,5 @@ android.enableJetifier=true
# Enables namespacing of each library's R class so that its R class includes only the
# resources declared in the library itself and none from the library's dependencies,
# thereby reducing the size of the R class for that library
android.nonTransitiveRClass=true
android.nonTransitiveRClass=true
USER_SAVE_KEY = "user_save_key"

正在加载...
取消
保存