android - MEDIA_ERROR_SERVER_DIED 是什么意思?

标签 android error-handling android-mediaplayer

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/

相关文章:

android - 现代Android中的后台处理

android - Android Studio 中 gradle 依赖与 java import 语句之间的区别

php - 需要以某种方式陷阱Trap include_once

error-handling - for()循环中的错误处理

java - 如何监控媒体播放器接收的网络流量

java - Android - 打开跟踪文件时出错 : No such file or directory

android - 播放媒体播放器时显示软键盘时 UI 卡住了?

java - 在 Android 中调用随机方法

android进度对话框背景颜色

sql-server - 使用T-SQL,如何捕获操作系统错误代码?