3

我正在尝试显示一个视频流,该视频流从我的应用程序的一个活动开始,并跟随用户到应用程序中的其他活动,而无需重新准备。对活动更改稍作停顿是可以的,但不应重新启动。在一项活动中一切正常,但在切换活动时,MediaPlayer似乎不想连接到新的SurfaceHolder. 音频效果很好,几乎没有障碍。

我一直在尝试通过SurfaceView使用应用程序上下文初始化的子类来做到这一点。Button(当我改用简单的视图(例如通过 HTTP——是的,我验证了我可以正常使用 MediaPlayer 播放它),然后调用prepareAsync. 在我SurfaceHolder.CallbacksurfaceCreated方法中,我调用setDisplayand (如果玩家已完成准备)start。在surfaceDestroyed我调用的方法pause中。如果表面已经创建,我会在准备回调中调用 start。

在这一点上,我不知道该怎么做。有任何想法吗?

4

1 回答 1

0

更简单的方法是将位置存储在方法 onpause() 中:

public void onPause(){

     super.onPause();
     int pos = player.getCurrentPosition();
}

然后在新的活动调用中:

player.seekTo(pos);

player.start();

但这不是很有效。离开活动时存储视频的状态并在返回时恢复它会很好,但我在网上找不到这样的东西。

于 2011-07-25T14:36:28.430 回答