0

我找不到有关 Android 错误代码的任何文档。我正在整理一个似乎在较低级别的 API 设置上工作但不在更高级别的应用程序。尝试播放音频文件时会发生错误,就像我说的那样,这一切都在较低版本中工作。

我在日志中看到的错误代码是:

MediaPlayer 信息/警告 (1, 32)
MediaPlayer 信息 (1,32)
MediaPlayer 信息/警告 (1,26)
MediaPlayer 信息 (1,26)
MediaPlayer 错误(351, -4)
MediaPlayer 错误(351,-4)
VideoView 错误(351,-4)

那么有人可以详细解释一下这是如何工作的吗?我知道我有错误MediaPlayer,可能VideoView根据上面的数据,但数字代表什么?我认为这是一个特定的错误,但哪个错误?

我似乎找不到任何关于此以及如何解码的内容。我在哪里可以找到有关如何找出这意味着什么的文档,这是主要问题。

如果我能更好地得到这个特定错误代码的答案,但同样是实际的文档源,所以我自己可以查找其他代码也会有很大的好处。

这是 Eclipse 导出的确切日志文件:

07-04 12:22:48.298: V/key =(6969): http://xxxxxx/glennharrold/audio/normal/relaxsleepwellfull.mp3
07-04 12:22:48.388: D/MediaPlayer(6969): Couldn't open file on client side, trying server side   
07-04 12:22:48.388: D/SprintMM(6969): Proxy will be bypassed because of WIFI connection.
07-04 12:22:48.508: W/MediaPlayer(6969): info/warning (1, 32)
07-04 12:22:48.508: I/MediaPlayer(6969): Info (1,32)
07-04 12:22:48.508: W/MediaPlayer(6969): info/warning (1, 26)
07-04 12:22:48.508: I/MediaPlayer(6969): Info (1,26)
07-04 12:22:48.508: E/MediaPlayer(6969): error (351, -4)
07-04 12:22:48.508: E/MediaPlayer(6969): Error (351,-4)
07-04 12:22:48.508: D/VideoView(6969): Error: 351,-4

现在还不清楚究竟是什么意思,我可以看到它可能与在客户端找不到文件有关,但是这个完全相同的代码适用于较低的 API 版本我将工作代码复制到这个应用程序以制作一个新的一个。我在 Eclipse 的 logcat 中看到的唯一一件事是MediaPlayer 文本前面(6969)D/, E/, W/,I/不知道这些额外的东西是什么意思,它只在我将代码导出到文本时出现文件。

4

1 回答 1

1

仅供参考,当 logcat 显示信息时,它是以下之一:

  • D -调试
  • W -警告
  • 我-信息

后跟一个带有标识符的“/”,以标识通常由 TAG 定义的 Java 代码名称,这是一种标准做法:

public class fooClass{
    private static final String TAG = "fooClass";
    // ... SNIP
}

接下来是在 DalvikVM 中运行的 Java 代码的进程 ID,以及一些信息性错误代码/消息,具体取决于程序规范。

例如,从fooClass上面突出显示的 Java 类继续,假设它有这样的函数fooMethod

private void fooMethod(){    
    Log.d(TAG, "fooMethod() - This is a debug message");    
    //    
    Log.i(TAG, "fooMethod() - This is a info message");    
    //    
    Log.w(TAG, "fooMethod() - This is a warning message"); 
}

现在它将显示在日志中,如下所示:

07-04 20:58:00 D/fooClass (1234): fooMethod() - This is a debug message 
07-04 20:58:00 I/fooClass (1234): fooMethod() - This is a info message 
07-04 20:58:00 W/fooClass (1234): fooMethod() - This is a warning message

一些应用程序会根据程序员的判断选择显示消息或显示神秘消息。

值得注意的是,在 Android 框架本身内,一些服务将显示一条无意义的消息,除了 ROM 本身背后的开发人员之外,对任何人都没有什么意义,以帮助进行故障排除。

编辑:由于 OP 坚持试图明确理解这一点,这里是

MediaPlayer 的 AOSP 源代码位于此处的 github 上,在第1547行的源代码中有对“pvmf_return_codes.h”的引用,快速 google-fu 导致此链接。错误代码和条件是由于不兼容或媒体错误造成的。

于 2012-07-04T20:02:50.893 回答