我想以指定的时间间隔在单个视频上叠加多个视频。
尝试了不同的解决方案,但它不会像我那样工作
我使用下面的命令将视频覆盖在视频上
String[] cmdWorking3 = new String[]{"-i",yourRealPath,"-i",gifVideoFile1,"-i",gifVideoFile2,"-i",gifVideoFile3,
"-filter_complex",
"[0][1]overlay=100:100:enable='between(t,0,2)'[v1];" +
"[v1][2]overlay=130:130:enable='between(t,0,2)'[v2];" +
"[v2][3]overlay=150:150:enable='between(t,5,6)'[v3];",
"-map","[v3]","-map" ,"0:a",
"-preset", "ultrafast", filePath};
Run Code Online (Sandbox Code Playgroud)
通过使用上述命令,前两个视频完全正常,但最后一个无法启用
编辑:
//完美运行
String[] cmdWorking11 = new String[]
{"-i",
yourRealPath,
"-i",
gifVideoFile1,
"-i",
gifVideoFile2,
"-i",
gifVideoFile3,
"-i",
gifVideoFile4,
"-filter_complex",
"[1]setpts=PTS+3/TB[1d];" +
"[2]setpts=PTS+7/TB[2d];" +
"[3]setpts=PTS+10/TB[3d];" +
"[0][1]overlay=100:100:enable='between(t,0,2)'[v1];" +
"[v1][1d]overlay=130:130:enable='between(t,3,6)'[v2];" +
"[v2][2d]overlay=130:130:enable='between(t,7,9)'[v3];" +
"[v3][3d]overlay=150:150:enable='between(t,10,13)'[v4];" +
"[1]asetpts=PTS+3/TB[1ad];" +
"[2]asetpts=PTS+7/TB[2ad];" +
"[3]asetpts=PTS+10/TB[3ad];" +
"[0:a][1ad][2ad][3ad]amix=4[a]",
"-map", "[v4]", "-map", "[a]", "-ac", "5",
"-preset",
"ultrafast",
filePath};
Run Code Online (Sandbox Code Playgroud)
上面的命令完全正常,但重叠视频中的音频消失了,你能帮我解决这个问题吗?
主视频时间持续时间约为00:15 秒,所有叠加视频约为 3 秒。
帮助解决这个问题会很棒,提前致谢。
在使用防护 改造时面临问题
HTTP FAILED: java.net.SocketException: recvfrom failed: ECONNRESET
(Connection reset by peer)
Run Code Online (Sandbox Code Playgroud)
我知道这个问题已被提出,但我面临的这个错误是来自其他场景...找到与此错误相关的链接,但我得到的没有任何正确的解决方案.
在Android中获取"SocketException:Connection by peer reset"
https://github.com/square/retrofit/issues/1027
我Retrofit
HTTP client
通过使用body请求用于api调用.
@POST("users/new")
Call<User> createUser(@Body User user);
Run Code Online (Sandbox Code Playgroud)
我的客户
public static OkHttpClient getClient() {
if (client == null) {
HttpLoggingInterceptor interceptor = new HttpLoggingInterceptor();
interceptor.setLevel(HttpLoggingInterceptor.Level.BODY);
RequestInterceptor m1RequestInterceptor = new RequestInterceptor();
client = new OkHttpClient.Builder()
.connectTimeout(2, TimeUnit.MINUTES)
.readTimeout(2, TimeUnit.MINUTES)
.addInterceptor(interceptor)
.addInterceptor(m1RequestInterceptor)
.build();
}
return client;
}
Run Code Online (Sandbox Code Playgroud)
保护规则
# Retain generic type information for use by reflection by converters and adapters. …
Run Code Online (Sandbox Code Playgroud) 我正在使用包管理器来获取启动器中应用程序抽屉界面的应用程序列表。一切正常,但在 Android 11 上,唯一显示的应用程序是 Android 设置应用程序。是什么改变了它不再工作和/或我应该做什么才能使它工作?应用程序列表现在基于用户配置文件吗?
这是我当前的列表代码
public static List<ApplicationInfo> getPrimaryApps(Context context) {
PackageManager pm = context.getPackageManager();
List<ApplicationInfo> res = new ArrayList<>();
ArrayList<String> hiddenPackages = new ArrayList<>();
IconPackHelper iconPackHelper = IconPackHelper.getInstance(context);
//All Apps Package Filter
Set<String> filteredPackages = new HashSet<>();
filteredPackages.add("com.android.wallpaper.livepicker");
filteredPackages.add("com.gocalsd.symphlyx");
//All Apps Blacklist
String[] flattenedPackages = SettingsProvider.get(context).getString(SettingsProvider.HIDDEN_APPS, "").split("\\|");
for (String flat : flattenedPackages) {
ComponentName cmp = ComponentName.unflattenFromString(flat);
if (cmp != null) {
hiddenPackages.add(cmp.getPackageName());
}
}
Intent intent = new Intent(Intent.ACTION_MAIN, null);
intent.addCategory(Intent.CATEGORY_LAUNCHER);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_RESET_TASK_IF_NEEDED);
List<ResolveInfo> resolveInfoList …
Run Code Online (Sandbox Code Playgroud) 在这里,我已经libvlc
成功构建了android并将其嵌入到react native项目中。
音频和视频流都可以正常工作。
事情让我不解的是视频内容的尺寸不适合surface
和view
好,虽然我已经设置它们MATCH_PARENT
。
这是一些代码实现。
package org.videolan;
import android.net.Uri;
import android.app.Activity;
import android.content.Context;
import android.view.SurfaceView;
import android.view.ViewGroup;
import android.widget.FrameLayout;
import com.facebook.react.bridge.ReactContext;
import org.videolan.libvlc.LibVLC;
import org.videolan.libvlc.Media;
import org.videolan.libvlc.MediaPlayer;
import java.util.ArrayList;
public class RCTVLCPlayerView extends FrameLayout {
private final Context _context;
private SurfaceView surfaceView;
private LibVLC libVLC = null;
private MediaPlayer mediaPlayer;
private Activity activity = null;
ArrayList<String> options = new ArrayList<>();
public SurfaceView getPlayer() {
return this.surfaceView;
}
public RCTVLCPlayerView(Context context) {
super(context); …
Run Code Online (Sandbox Code Playgroud)