从另一个活动返回后,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() 仅在首次创建时被调用一次。
【讨论】:
我在VideoView
的onTouch
事件中启动播放器。事实上,当另一个 Activity 出现在前台时,它并没有停止。虽然当我用播放器返回 Activity 时,视频屏幕变黑了。【参考方案2】:
最后我得到了MediaPlayer
,它在onStop
方法中被销毁并在onResume
方法中重新创建。
这种方法的主要缺点是改变方向后MediaPlayer
必须再次缓冲视频。
我认为主要原因是对MediaPlayer
的引用丢失了。如果不参考MediaPlayer
,我无法再次将SurfaceView
设置为视频显示。
【讨论】:
以上是关于从另一个活动返回后,VideoView 上的视频播放消失的主要内容,如果未能解决你的问题,请参考以下文章
Android - VideoView 需要按两次 BACK 才能退出
将设备上的视频流式传输到 videoview - Android