MEDIA_ERROR_SERVER_DIED 是啥意思?
Posted
技术标签:
【中文标题】MEDIA_ERROR_SERVER_DIED 是啥意思?【英文标题】:What does MEDIA_ERROR_SERVER_DIED mean?MEDIA_ERROR_SERVER_DIED 是什么意思? 【发布时间】:2012-01-11 06:17:43 【问题描述】:在android docs中,定义了一个常量MEDIA_ERROR_SERVER_DIED
,描述为:
媒体服务器死机。在这种情况下,应用程序必须释放 MediaPlayer 对象并实例化一个新对象。
这似乎很模糊。媒体服务器死了是什么意思?为什么会死?之后立即尝试再次播放来处理它是否合适?
【问题讨论】:
【参考方案1】:在 Android 中,大多数媒体活动(解码/编码)都发生在媒体服务器中,但在少数情况下除外,例如使用软件编解码器播放本地文件。 Android 媒体服务器通常会因硬件错误、格式不正确的文件或数据而崩溃(中止)。是的,对不起!
由于许多活动共享一个公共媒体服务器,因此任何活动中的错误都可能导致媒体服务器崩溃。这种情况最常发生在后台活动(例如媒体扫描仪或 Google+ Auto-Awesome Movies)尝试扫描损坏或不受支持的文件时。发生这种情况时,使用 mediaserver 的其余进程会收到通知。如果是 MediaPlayer 或 MediaRecorder,此通知将传递给应用程序。
当 mediaserver 死机时,它会立即重新启动。即使服务器死了,应用程序上的代理对象仍然活着并且正在使用资源。因此需要释放对象。在收到通知后立即创建一个新的应该是安全的。
【讨论】:
【参考方案2】:导致这种情况的一种情况是 MediaPlayer 未接收或停止接收来自服务器的视频流。如果错误始终立即发生(即,如果根本没有收到任何视频),您可能需要确保没有任何东西(防火墙、*** 等)阻止您到服务器的路由。
【讨论】:
【参考方案3】:这意味着您从中流式传输的服务器意外终止了连接。可能会发生,通常与“Connection reset by peer”错误有关。
是的,您可以尝试重新连接,也许稍等片刻。
【讨论】:
以上是关于MEDIA_ERROR_SERVER_DIED 是啥意思?的主要内容,如果未能解决你的问题,请参考以下文章
Android MediaPlayer onError Listener MEDIA_ERROR_SERVER_DIED 出问题