我使用下面的命令来合并音频和视频-
"-i", videoFileAbsolutePath, "-i", audioFileAbsolutePath, "-c:v", "copy", "-c:a", "aac", "-map", "0:v:0", "-map", "1:a:0", "-shortest", destinationFileAbsolutePath
Run Code Online (Sandbox Code Playgroud)
对于几个视频,我遇到以下错误 -
ffmpeg 版本 n3.0.1 版权所有 (c) 2000-2016 FFmpeg 开发人员\n 使用 gcc 4.8 (GCC) 构建\n 配置: --target-os=linux --cross-prefix=/home/vagrant/SourceCode/ffmpeg- android/toolchain-android/bin/arm-linux-androideabi- --arch=arm --cpu=cortex-a8 --enable-runtime-cpudetect --sysroot=/home/vagrant/SourceCode/ffmpeg-android/toolchain- android/sysroot --enable-pic --enable-libx264 --enable-libass --enable-libfreetype --enable-libfribidi --enable-libmp3lame --enable-fontconfig --enable-pthreads --disable-debug --禁用-ffserver --enable-version3 --enable-hardcoded-tables --disable-ffplay --disable-ffprobe --enable-gpl --enable-yasm --disable-doc --disable-shared --enable-static --pkg-config=/home/vagrant/SourceCode/ffmpeg-android/ffmpeg-pkg-config --prefix=/home/vagrant/SourceCode/ffmpeg-android/build/armeabi-v7a --extra-cflags='-我/home/vagrant/SourceCode/ffmpeg-android/toolchain-android/include -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2 -fno-strict-overflow -fstack-protector-all' --extra-ldflags='-L/home/vagrant/ SourceCode/ffmpeg-android/toolchain-android/lib -Wl,-z,relro -Wl,-z,now -pie' --extra-libs='-lpng -lexpat -lm' --extra-cxxflags=\n libavutil 55. 17.103 / 55. 17.103\n …
我正在使用下面的代码来测试DiffUtil implementationaion.As per doc-
DiffUtil 是一个实用程序类,可以计算两个列表之间的差异并输出将第一个列表转换为第二个列表的更新操作列表。
我的新列表比旧列表多一项。但我的适配器仅在适配器上调用 dispatchUpdatesTo 后才显示旧列表。
val diffResult = DiffUtil.calculateDiff(MyDiffCallback(newlist, commitmentList),true);
commitmentList=newlist
diffResult.dispatchUpdatesTo(commitmentAdapter);
Run Code Online (Sandbox Code Playgroud)
MyDiffCallback.java
public class MyDiffCallback extends DiffUtil.Callback{
ArrayList<Commitment> oldPersons;
ArrayList<Commitment> newPersons;
public MyDiffCallback(ArrayList<Commitment> newPersons, ArrayList<Commitment> oldPersons) {
this.newPersons = newPersons;
this.oldPersons = oldPersons;
}
@Override
public int getOldListSize() {
return oldPersons.size();
}
@Override
public int getNewListSize() {
return newPersons.size();
}
@Override
public boolean areItemsTheSame(int oldItemPosition, int newItemPosition) {
return(oldPersons.get(oldItemPosition)
.equals(newPersons.get(newItemPosition))); }
@Override
public boolean areContentsTheSame(int oldItemPosition, int newItemPosition) {
return(oldPersons.get(oldItemPosition)
.compareTo(newPersons.get(newItemPosition))==0); }
}
Run Code Online (Sandbox Code Playgroud)
适配器 …
我正在通过以下链接找出组合和聚合之间的区别。
https://www.geeksforgeeks.org/association-composition-aggregation-java/
我能够理解,组合意味着一种关系,其中孩子不能独立于父母而存在,而聚合意味着一种关系,其中孩子可以独立于父母而存在。但无法理解如何以编程方式区分。下面是链接中给出的聚合和组合的示例。在这两种情况下,除了 Student 和 Department 类有一个额外的变量“name”外,这两种类的结构相同。如在组合中“子不能独立于父而存在”,但是在这里,我可以创建一个单独的 Book 对象并使用它,而无需将其添加到 Library。
聚合
// student class
class Student
{
String name;
int id ;
String dept;
Student(String name, int id, String dept)
{
this.name = name;
this.id = id;
this.dept = dept;
}
}
/* Department class contains list of student
Objects. It is associated with student
class through its Object(s). */
class Department
{
String name;
private List<Student> students;
Department(String name, List<Student> students)
{
this.name = name;
this.students = students;
} …
Run Code Online (Sandbox Code Playgroud)