错误代码媒体播放器语法和定义

Posted

技术标签:

【中文标题】错误代码媒体播放器语法和定义【英文标题】:Error Codes Media Player syntax and definition 【发布时间】:2012-07-04 18:27:33 【问题描述】:

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

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

MediaPlayer 信息/警告 (1, 32) 媒体播放器信息 (1,32) MediaPlayer 信息/警告 (1,26) 媒体播放器信息 (1,26) 媒体播放器错误(351, -4) 媒体播放器错误 (351,-4) VideoView 错误(351,-4)

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

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

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

这是 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 中看到的唯一内容是 (6969) 和 MediaPlayer 文本前面的 D/E/W/I/ 不知道这些额外的东西是什么意思,它只在我将代码导出到文本文件时出现。

【问题讨论】:

源码,logcat,你研究了什么?你的结论是什么?你做了什么测试?你尝试了什么? 以上来自logcat。在线搜索几乎与 mediaPlayer 错误代码有关的任何内容都没有成功。我查看了输入到媒体播放器的数据,一切看起来都不错,但更重要的是,我在哪里可以找到错误代码定义,这样我至少可以找到正确的方向并将定义添加到我的调试资源中 您的 logcat 因某种原因被修剪并且太模糊,因此不知道那是什么,也没有帮助。建议您重新编辑您的问题,以包含详细说明错误的 full logcat。 :) 按建议编辑。媒体链接确实存在并且可以在其他应用程序中访问。这实际上是一个新应用程序,它将更新旧版本的应用程序,这就是我知道链接有效的方式 MP3 的声音如何?在电脑上可以播放吗?它的比特率是多少?可能值得检查一下它是否确实在android自己的媒体播放器上正常播放,如果不能播放,你有你的答案:) 【参考方案1】:

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

D - D 错误 W - W 安宁 我 - 信息

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

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

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

例如,从上面突出显示的 Java 类 fooClass 继续,假设它有一个函数 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 here,请查看行号 1547 的源代码中对“pvmf_return_codes.h”的引用,快速 google-傅导致这个linky。错误代码和条件是由于不兼容或媒体错误造成的。

【讨论】:

谢谢,这是我一直在寻找的基本信息,所以我现在明白了,第一个数字 (351) 没有任何意义,根据你提到的第二份文件,-4 表示这个常量 PVMFStatus PVMFErrNotSupported = (-4); /* 由于无效参数导致的错误 */ 别忘了...const PVMFStatus PVMFInfoSourceFormatNotSupported = 32; 在上面的“警告”部分中提到过 :) const PVMFStatus PVMFInfoErrorHandlingStart = 26; 用于异常处理,如果您想这样说的话,它从 26 开始,然后遇到 32,所以根据序列的顺序,可能是 MediaPlayer 服务无法处理它,要么是 mp3 的编解码器格式错误或什么......很难说或确定到底是什么! 非常感谢,这确实有很大帮助并专注于最后一个,这实际上是重要的部分 很高兴能帮上忙,希望你恢复正常 :) 如果这个答案让您满意,您能否点赞并标记为已解决? :)

以上是关于错误代码媒体播放器语法和定义的主要内容,如果未能解决你的问题,请参考以下文章

由于“cloudinary.uploader 未定义”错误,从 cloudinary 中删除媒体文件失败

媒体基础自定义拓扑 E_FAIL

较少的 CSS 解析错误:媒体定义需要块语句

Qt视频播放器[QMediaPlayer+QVideowidget]

0080 媒体查询media引入资源

动态社交媒体按钮 - 减少 http 请求和验证错误