如何不寻求关键帧

时间:2014-01-23 20:39:51

标签: java android video-capture video-player

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

  1. 方法:VideoView的简单android sdk
    onSeekCompleteListener MediaPlayer onPreparedListenerVideoView播放后,我立即获得pause基类MediaMetaRetriever,并将其移至首选位置位置。
    问题:仅寻求关键帧!

  2. 方法: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); } }); } : 我有这样的事情:

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

    也许是可能的解决方案:

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

    2. 方法(我还没试过!):我听说过一些使用{{1}}的Android视频播放器第三方库。是否有任何库可以在暂停状态下搜索并更新屏幕上的视频位置?

1 个答案:

答案 0 :(得分:2)

您是否尝试过FFmpegMediaMetadataRetriever