从另一个活动返回后,VideoView 上的视频播放消失

Posted

技术标签:

【中文标题】从另一个活动返回后,VideoView 上的视频播放消失【英文标题】:Video playback on VideoView disappears after going back from another Activity 【发布时间】:2010-06-08 12:15:22 【问题描述】:

我有两个活动:一个将VideoView 附加到MediaPlayer,第二个。 我在第一个 Activity 中开始观看视频,然后在播放期间开始第二个 Activity。 回到第一个 Activity 后,我可以听到声音但看不到图片。

我的视频布局:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:orientation="vertical" android:layout_
        android:layout_>
    <VideoView android:layout_
            android:layout_ android:layout_weight="1"
            android:id="@+id/videoView" android:layout_gravity="center" />  
    <ListView android:layout_ android:layout_
            android:id="@+id/ListView" />
</LinearLayout>

您知道为什么视频没有出现吗?

【问题讨论】:

【参考方案1】:

可能与Activity生命周期有关。您是否开始在 onCreate() 方法中播放视频?如果是这样,请尝试将其移至 onResume(),当一个活动被发送到后台但随后又被带回来时,它会被调用。 onCreate() 仅在首次创建时被调用一次。

【讨论】:

我在VideoViewonTouch事件中启动播放器。事实上,当另一个 Activity 出现在前台时,它并没有停止。虽然当我用播放器返回 Activity 时,视频屏幕变黑了。【参考方案2】:

最后我得到了MediaPlayer,它在onStop 方法中被销毁并在onResume 方法中重新创建。

这种方法的主要缺点是改变方向后MediaPlayer 必须再次缓冲视频。

我认为主要原因是对MediaPlayer 的引用丢失了。如果不参考MediaPlayer,我无法再次将SurfaceView 设置为视频显示。

【讨论】:

以上是关于从另一个活动返回后,VideoView 上的视频播放消失的主要内容,如果未能解决你的问题,请参考以下文章

Android - VideoView 需要按两次 BACK 才能退出

将设备上的视频流式传输到 videoview - Android

从另一个活动返回时,MapFragment 的地图加载滞后

从另一个活动返回后如何恢复活动中最后打开的片段

Acer Iconia A200 上的 VideoView getCurrentPosition() 异常

视频结束时调用下一个活动