在 Android docs ,定义了一个常量MEDIA_ERROR_SERVER_DIED
,描述为:
Media server died. In this case, the application must release the MediaPlayer object and instantiate a new one.
这似乎很模糊。媒体服务器死了是什么意思?为什么会死?之后立即尝试再次播放是否合适?
最佳答案
在 Android 中,大多数媒体 Activity (解码/编码)都发生在媒体服务器中,除了在有限的情况下,例如使用软件编解码器播放本地文件。 Android 媒体服务器通常会因硬件错误、格式不正确的文件或数据而崩溃(中止)。是的,对不起!
由于许多 Activity 共享一个公共(public)媒体服务器,因此任何 Activity 中的错误都可能导致媒体服务器崩溃。这种情况最常发生在后台 Activity (例如媒体扫描仪或 Google+ Auto-Awesome Movies)尝试扫描损坏或不支持的文件时。发生这种情况时,使用 mediaserver 的其余进程会收到通知。如果是 MediaPlayer 或 MediaRecorder,此通知将传递给应用程序。
当 mediaserver 死机时,它会立即重新启动。即使服务器死了,应用程序上的代理对象仍然活着并且正在使用资源。因此需要释放对象。在收到通知后立即创建一个新的应该是安全的。
关于android - MEDIA_ERROR_SERVER_DIED 是什么意思?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8352599/