gpt4 book ai didi

java - 如何不寻找关键帧

转载 作者:太空狗 更新时间:2023-10-29 13:25:58 28 4
gpt4 key购买 nike

我试图找到一种在我的 Android 应用程序中逐帧搜索(不仅是关键帧)的解决方案。

  1. 方法:android sdk的一个简单的VideoView:
    在这里,我从 VideoViewpause 的 onPreparedListener 得到了基类 MediaPlayeronSeekCompleteListener 播放开始后立即移动到首选位置。
    问题:只寻找关键帧!

  2. 方法:MediaMetaRetriever:我有这样的东西:

    MediaMetadataRetriever retriever;
    long Position;
    ImageView video;
    TextView lbPosition;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    video = (ImageView)findViewById(R.id.imVideo);
    lbPosition = (TextView)findViewById(R.id.lbPosition);
    bnTake = (Button)findViewById(R.id.bntake);
    retriever.setDataSource(this, Uri.parse("android.resource://" + getPackageName() + "/" + R.raw.vid));

    video.setOnClickListener(new ImageView.OnClickListener() {
    @Override
    public void onClick(View arg0) {
    Position += 100000;
    Bitmap frame = retriever.getFrameAtTime(Position, MediaMetadataRetriever.OPTION_CLOSEST);
    video.setImageBitmap(frame);
    lbPosition.setText(String.valueOf(Position));
    }
    });

    bnTake.setOnClickListener(new Button.OnClickListener() {
    @Override
    public void onClick(View arg0) {
    Intent takeVideoIntent = new Intent(MediaStore.ACTION_VIDEO_CAPTURE);
    startActivityForResult(takeVideoIntent, 123123);
    }
    });
    }

当我在 retriever.getFrameAtTime 中使用 OPTION_CLOSESTS 时,它会给我一个 getFrameAtTime: videoFrame is a NULL 指针错误。当我不使用这个选项时,它会通过关键帧。

可能的解决方案:

  1. 方法:录制具有更多关键帧的视频。如果我在我的 Android 应用程序中以更高的 keyframe rate 录制视频,这可能是一个解决方案吗?这可能吗?

  2. 方法(我没试过!):我听说过使用 FFMPEG 的 android 视频播放器第 3 方库。有没有库可以在暂停状态下寻找并更新视频在屏幕上的位置?

最佳答案

你试过了吗FFmpegMediaMetadataRetriever

关于java - 如何不寻找关键帧,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21318835/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com