在Android docs中,有一个常量定义的MEDIA_ERROR_SERVER_DIED,它被描述为:
媒体服务器死亡。在这种情况下,应用程序必须释放MediaPlayer对象并实例化一个新对象。
这似乎很模糊。媒体服务器死亡是什么意思?它为什么会死?然后再试着再玩一次,这样做合适吗?
发布于 2014-04-07 16:34:27
在Android中,大多数媒体活动(解码/编码)都发生在媒体服务器上,只有在有限的情况下,例如使用软件编解码器的本地文件回放。Android媒体服务器经常因硬件错误、格式不正确的文件或数据而崩溃(中止)。是的,对不起!
由于许多活动共享公共中介服务器,因此任何活动中的错误都可能导致中介服务器崩溃。这种情况最常见的情况是背景活动,如媒体扫描仪或Google+自动电影试图扫描一个损坏的或只是不受支持的文件。当发生这种情况时,使用中介服务器的其余进程将收到通知。在MediaPlayer或MediaRecorder情况下,此通知将传递给应用程序。
当媒体服务器死后,它会立即重新启动。即使服务器死了,应用程序上的代理对象仍然是活动的,并且正在使用资源。因此,需要释放对象。在通知之后立即创建一个新的应该是安全的。
发布于 2013-07-26 22:44:23
造成这种情况的一个条件是,当MediaPlayer不接收或停止从服务器接收视频流时。如果错误始终立即发生(即,如果根本没有接收到任何视频),您可能希望确保没有(防火墙、VPN等)。阻止了你通往服务器的路线。
发布于 2011-12-09 14:11:22
这意味着您要从其中流的服务器意外地结束了连接。这是可能发生的,通常是与“由对等方重置连接”错误有关。
你可以尝试重新连接--是的,也许在等了一会儿之后。
https://stackoverflow.com/questions/8352599
复制相似问题