求教一下,如图中的这两个圆环选择时间的view和上下滑动选择快慢的view,如何通过自定义view去实现,并且圆环能够和手势有联动呢?
最近项目有个需求
就是在通过摄像头预览画面的同时,在预览画面的上方,添加一个透明背景的特效视频,就是为预览视频添加额外的动画特效

画面层次大概就是这样的
目前页面布局如下
<FrameLayout
android:layout_width="0dp"
android:layout_height="0dp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toStartOf="@+id/guideline"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent">
<com.vi.hcnetsdk.simpleapp.custom.ScalableSurfaceView
android:layout_width="match_parent"
android:layout_height="match_parent" />
<FrameLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:visibility="gone">
<TextureView
android:layout_width="match_parent"
android:layout_height="200dp" />
</FrameLayout>
</FrameLayout>
ijkPlayer
ijkMediaPlayer = new IjkMediaPlayer(); ijkMediaPlayer.setSurface(new Surface(surfaceTexture)); ijkMediaPlayer.setDataSource(destinationPath); ijkMediaPlayer.setOption(IjkMediaPlayer.OPT_CATEGORY_PLAYER, "overlay-format", IjkMediaPlayer.SDL_FCC_RV32); ijkMediaPlayer.setOption(IjkMediaPlayer.OPT_CATEGORY_PLAYER, "framedrop", 1); ijkMediaPlayer.setOption(IjkMediaPlayer.OPT_CATEGORY_PLAYER, "start-on-prepared", 0); ijkMediaPlayer.setOption(IjkMediaPlayer.OPT_CATEGORY_PLAYER, "an", 1); // 准备并播放视频 ijkMediaPlayer.prepareAsync(); ijkMediaPlayer.start();
ScalableSurfaceView用于预览视频的承载,TextureView用来播放带有透明背景的动画特效的mov、avi格式的视频
目前尝试下来,ScalableSurfaceView这部分预览视频没有问题,使用ijkPlayer与textureView来播放mov、avi格式视频也可以,但是
播放的视频的透明背景丢失,会遮挡底下的预览视频
大概是这样的

请教一下了解音视频方面的大佬们,这种情况如何解决?或者有没有另外一些可行的方案去实现,
希望了解的朋友给点建议支支招



按照网上所给的方法已试过没用 请大佬解解惑
在使用SQLite查询数据时,报错。
报错信息如下:

我使用的没那么复杂,大概的流程是这样的 -> 1.在Activity中调用Helper实现类来创建数据库;2.在Activity中 向数据库中存入数据;
3.在点击控件时,调用对应方法来查询数据,最终实在manager中进行查询操作。
主要代码如下:
DatabaseHelper :
public class DatabaseHelper extends SQLiteOpenHelper {
private static final int VERSION = 1;
private static final String DBNAME = "MusicData.db";
/**
* 创建一个音乐表,包含id position 以及filepath
* 本意是在遍历音乐列表数据的时候 将position 和filepath一 一对应起来
*/
public static final String CREATE_MUSIC = "create table Music(" +
"id integer primary key autoincrement," +
"position integer," +
"filepath text)";
public DatabaseHelper(@Nullable @org.jetbrains.annotations.Nullable Context context, @Nullable @org.jetbrains.annotations.Nullable String name, @Nullable @org.jetbrains.annotations.Nullable SQLiteDatabase.CursorFactory factory, int version) {
super(context, name, factory, version);
}
/**
* 参数为上下文的构造方法 便于传递上下文
* @param context
*/
public DatabaseHelper(Context context) {
super(context, DBNAME, null, VERSION);
}
@Override
public void onCreate(SQLiteDatabase db) {
db.execSQL(CREATE_MUSIC);//创建数据库
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
}
}
MainActivity中正常存入没有问题 就不多粘贴了,粘贴一下创建数据库的代码
mDatabaseHelper = new DatabaseHelper(getApplicationContext());
在Manager中使用的地方
public class MusicPlayManager implements IMusicPlayManager {
private static final String TAG = MusicPlayManager.class.getSimpleName();
private MusicInfo musicInfo;
private MusicPlayListener MIMusicPlayListener;
private Context mContext;
MediaPlayer mediaPlayer = new MediaPlayer();
private int nowPosition;//点击下一首 上一首前的音乐的位置
private DatabaseHelper mDatabaseHelper;
/**
省略其他代码,只贴出了Manager前面声明的对象 以及 真正调用数据库进行查询的方法
**/
private String queryMusicFile() {
SQLiteDatabase db = mDatabaseHelper.getReadableDatabase(); //这里报错了,无论是getRead还是getWrite都是报错 空指针
String path = null;
String[] selection = {String.valueOf(nowPosition - 1)};
Cursor cursor = db.query("Music", null, null, selection, null, null, null);
for (cursor.moveToFirst(); !cursor.isAfterLast(); cursor.moveToNext()) {
path = cursor.getString(cursor.getColumnIndex("filepath"));
}
return path;
}
}
在Manager中进行查询时 发生的报错,看了一些论坛的帖子 大部分都是说 Context的问题,但是我还是不太理解,因为好多帖子都是Fragment中的使用,感觉和我不太一样。
看看哪位大佬能指点一二,感激不尽。
业),到 了 唐 朝 中 叶 出 现 了“柜 坊”等,凭 证 有 相 互 约 定 的 实 物,即 具 体 的 一 样 东 西 ,较 多 的 则 使 用“凭 贴”
业),到 了 唐 朝 中 叶 出 现 了“柜 坊”等,凭 证 有 相 互 约 定 的 实 物,即 具 体 的 一 样 东 西 ,较 多 的 则 使 用“凭 贴”
业),到 了 唐 朝 中 叶 出 现 了“柜 坊”等,凭 证 有 相 互 约 定 的 实 物,即 具 体 的 一 样 东 西 ,较 多 的 则 使 用“凭 贴”
业),到 了 唐 朝 中 叶 出 现 了“柜 坊”等,凭 证 有 相 互 约 定 的 实 物,即 具 体 的 一 样 东 西 ,较 多 的 则 使 用“凭 贴”
业),到 了 唐 朝 中 叶 出 现 了“柜 坊”等,凭 证 有 相 互 约 定 的 实 物,即 具 体 的 一 样 东 西 ,较 多 的 则 使 用“凭 贴”
业),到 了 唐 朝 中 叶 出 现 了“柜 坊”等,凭 证 有 相 互 约 定 的 实 物,即 具 体 的 一 样 东 西 ,较 多 的 则 使 用“凭 贴”
业),到 了 唐 朝 中 叶 出 现 了“柜 坊”等,凭 证 有 相 互 约 定 的 实 物,即 具 体 的 一 样 东 西 ,较 多 的 则 使 用“凭 贴”
业),到 了 唐 朝 中 叶 出 现 了“柜 坊”等,凭 证 有 相 互 约 定 的 实 物,即 具 体 的 一 样 东 西 ,较 多 的 则 使 用“凭 贴”
业),到 了 唐 朝 中 叶 出 现 了“柜 坊”等,凭 证 有 相 互 约 定 的 实 物,即 具 体 的 一 样 东 西 ,较 多 的 则 使 用“凭 贴”
业),到 了 唐 朝 中 叶 出 现 了“柜 坊”等,凭 证 有 相 互 约 定 的 实 物,即 具 体 的 一 样 东 西 ,较 多 的 则 使 用“凭 贴”
- 1
- 2
- 3
