【问题标题】:Playing video in surfaceview在surfaceview中播放视频
【发布时间】:2014-12-16 04:53:06
【问题描述】:

我的应用在表面视图中播放视频。我在 onPause() 时停止播放媒体播放器。但是,当我从另一个活动返回时,surfaceview 是全黑的,并且只有当我再次开始播放视频时才开始显示帧。我想知道是否有一种方法可以在停止时保留最后一帧。非常感谢。

【问题讨论】:

  • 需要保存吗?当您的应用恢复时,您可以只播放一帧并重新暂停视频吗?
  • @fadden 是的,这是另一种解决方案,但我怎样才能播放一帧?我曾尝试在 start() 之后立即调用 pause() 并失败。谢谢!
  • seek() 方法会触发帧绘制吗?如果是这样,您可以获得暂停前的位置,并在您恢复活动时搜索到该帧。
  • @JASONGPETERSON 不会

标签: android android-mediaplayer surfaceview


【解决方案1】:

我使用了 2 个 SurfaceView,第一个用于播放视频,第二个用于显示图片。 当我从暂停返回时,如果没有播放媒体播放器,我会通过这部分代码获取当前视频帧:

try {
    mediaMDRetriever.setDataSource(mediaPath);
    picBitmap = mediaMDRetriever.getFrameAtTime();
} catch (Exception e) {
}

并在第二个 surfview 上绘制它。

如果需要,您可以通过以下代码清除第二个 SurfaceView:

Canvas surfCanvas = surfHolder2.lockCanvas();
surfCanvas.drawColor( 0, PorterDuff.Mode.CLEAR );
surfHolder2.unlockCanvasAndPost( surfCanvas );

【讨论】:

    猜你喜欢
    • 2015-12-08
    • 1970-01-01
    • 2012-07-11
    • 1970-01-01
    • 2014-02-10
    • 1970-01-01
    • 2011-10-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多