返回Android中的视频播放活动时出现黑屏
|
我目前正在开发Android应用程序ServeStream,遇到了无法解决的问题。我的应用程序将使用android MediaPlayer类流式传输音乐和视频。我根据以下示例找到了我的班级模型:
http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/media/MediaPlayerDemo_Video.html
此示例与我自己的代码之间的区别在于,我的MediaPlayer是在允许其在后台继续播放的服务中运行的。 android示例代码的问题是,如果我正在观看视频,并且退出了当前的窗口/活动(即,按菜单按钮等),然后返回到播放活动,则我得到黑屏,但仍然从正在播放的视频。
最初创建播放活动时,将执行以下代码。这段代码实质上是创建用于回放的视图,然后将其与媒体播放器联系起来:
setContentView(R.layout.mediaplayer_2);
mPreview = (SurfaceView) findViewById(R.id.surface);
holder = mPreview.getHolder();
holder.addCallback(this);
holder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS);
...
mMediaPlayer.setDisplay(holder);
重要的行是mMediaPlayer.setDisplay(holder),因为它将当前视图/显示与媒体播放器绑定在一起。离开活动时,视图(\“ holder \”)被破坏。返回活动并重新创建视图后,再次执行mMediaPlayer.setDisplay(holder)似乎不会重新附加新创建的视图。显示黑屏,而不是视频。
有没有人有解决此问题的方法或解决方案。我将不胜感激任何帮助或建议。
没有找到相关结果
已邀请:
7 个回复
缔恃钨
回调方法在有界的
-
实现的生命周期中起着至关重要的作用。那些非常回调的方法对于摆脱这种情况很方便。 第一: 内部onCreate():-基本的初始化内容。
然后, SurfaceView回调: 别忘了将ѭ6设置为ѭ1,恕我直言,,8ѭ是执行此操作的最佳位置。
这是最重要的。当用户通过按“主页”按钮或通过打开预期有任何结果的其他活动离开当前活动时,我们的
将被销毁。我想要实现的是从上下文切换后的播放位置继续播放正在进行的视频。 因此,为了做到这一点, 将当前播放位置保存在变量中,以便以后可以使用它来查找到该特定位置的播放。 还有一个。释放该死的“ 1”实例。我试图避免释放ѭ1实例,并且重新创建它,但是我不断失败。所以..点了。
现在,onPrepared() 如果您有兴趣,请在此处初始化任何
。检查视频是否已经在播放,因此将视频搜索到该位置。
最后,播放视频:
仅此而已。我知道更新的版本并不存在这个问题,而且一切都很好,但是...还有大量的GB。
悲帽慑彤电
并再次输入视频
时,带有新
的mediaPlayer将为
。 请记住,始终将此代码放在ѭ21内,因为当按下主屏幕或锁定屏幕时,它将强制使用新的持有人触发“ sufaceCreate \”。视图将被重新创建,视频将显示为黑屏
希望这个帮助!
暑袜眠退
瓜唱鬼
在
中,我有:
我的背景空白为黑色,听见音频流。 我注意到,如果在第一次启动此活动时,如果我不赚ѭ26,我的行为将相同。 花了两天时间来解决这个问题...
死狸蔽垂藐
mediaplayer.xml布局:
AndroidManifest.xml看起来像:
谷靛
桔马牛
如果您想让媒体在后台播放,我建议您使用视频界面,尽管我不想在后台播放,这会激怒我。有很多方法,但我希望这对您有帮助 http://www.brightec.co.uk/blog/custom-android-media-controller 该链接实际上是根据您的需要定制媒体控制器的,但是当我用它创建我的链接时,我被按下Home键所困扰,视频将在后台播放。