一.onError
http://univasity.iteye.com/blog/898613
开发中使用MediaPlayer时经常会遇到如下这样的错误提示(红色字):
但是API文档中并未找到详细说明或给出对应的错误列表...
经过研究和网上资料的收集,暂总结如下:
以error(-38, 0)为例,
1. error中的两个数值,分别对应OnErrorListener.onError(MediaPlayer mp, int what, int extra)中的what(-38)和extra(0);
2. 对应编号的错误信息可以在这里找到个大概说明,像这里的
/*
* DRMclockisnotavailableorcannotberead
*/
constPVMFStatusPVMFErrDrmClockError=(-38);
/*
* Returncodeforpendingcompletion
*/
constPVMFStatusPVMFPending=0;
仍未知具体针对性的解决办法,但作为补救的方法(仅供参考):
通过设置监听器,并自己设置变量来标记MediaPlayer的大概状态(特别是Error,End,Idle),在操作相关的函数前先检测下,就能避免大多数"操作错误"。再不行就每个MediaPlayer的函数操作都加上对IllegalStateException异常的捕获。
ps:state的对应表仍然不是很清楚,也许研究下源码能找到答案?
****** update ******* // 2011.03.29
通过源码找到了state的相关定义:
enum media_player_states {
MEDIA_PLAYER_STATE_ERROR = 0,
MEDIA_PLAYER_IDLE = 1 << 0, // 1
MEDIA_PLAYER_INITIALIZED = 1 << 1, // 2
MEDIA_PLAYER_PREPARING = 1 << 2, // 4
MEDIA_PLAYER_PREPARED = 1 << 3, // 6
MEDIA_PLAYER_STARTED = 1 << 4, // 8
MEDIA_PLAYER_PAUSED = 1 << 5, // 16
MEDIA_PLAYER_STOPPED = 1 << 6, // 32
MEDIA_PLAYER_PLAYBACK_COMPLETE = 1 << 7 // 64
};
二.MediaPlayer(362): error (-38, 0)
在android开发中,经常会用到MediaPlayer。
在使用MediaPlayer时,有时候会遇到:MediaPlayer(362): error (-38, 0) 类似的错误。
这时,需要检查一下在设置MediaPlayer的数据源时,使用的是那种方式:
1.在初始化MediaPlayer时,通过create方法设置数据源。则不能写MediaPlayer.prepare()方法,这时,会报错。
2.如果是使用MediaPlayer构造函数初始化MediaPlayer,然后通过setDataSource方法设置数据源时,就需要在start()之前,使用MediaPlayer.prepare()方法,对数据源进行一次编译。能够避免出现(-38,0)这种错误。
ps:如果是apk里,写好的文件。可能还需要“"chmod 777 ”修复一下权限。
分享到:
相关推荐
window media player前一阵子总是出现“内部应用程序错误” 终于让我找到了解决方法,现在拿出来与大家分享
使用MediaPlayer为组件的各种状态播放自定义mp3声音效果。比如,Button点击,Listview,Gridview上下拉,刷新等播放一些特效声音。
Java 可嵌入到Web的MediaPlayer
Android MediaPlayer 自定义循环次数
Java-MediaPlayer源码Java-MediaPlayer源码
很好的mediaplayer demo 方便你入门学习
android mediaPlayer android mediaPlayer
android MediaPlayer SurfaceView
Android MediaPlayer
MediaPlayer控件属性描述 属性 描述 AllowChangeDisplaySize 返回或设置最终用户是否能设置显示尺寸(逻辑型) AllowScan 返回或设置是否允许扫描(逻辑型) AnimationAtStart 返回或设置控件开始播放之前是否先播放一...
Android 视频播放demo MediaPlayer+Surface实现 播放网络视频: MyMediaPlayer.getInstance().play("http://download.cntv.cn/docuchina/PSA/2017/08/28/3b69f457848e0b497b12e356376515df_mpeg28000000PCM.mp4"); ...
mediaplayer-5.9-viral
介绍了使用MediaPlayer播放音频,实际上,MediaPlayer还可以用来播放视频文件,只不过使用MediaPlayer播放视频时,没有提供图像输出界面。这时,可以使用SurfaceView组件来显示视频图像。使用MediaPlayer和...
MediaPlayer与SoundPool实现多个音频同时播放,背景音乐、音效!
GLSurfaceView控件实现 GLSurfaceView.Renderer , SurfaceTexture.OnFrameAvailableListener接口,通过MediaPlayer播放本地视频
Android MediaPlayer播放mp3的实例
MediaPlayer源码,与大家分享 里面描述了一个最基本的媒体播放器,支持目前大多数格式文件的媒体播放
用Mediaplayer做音乐播放,可以调节声音大小,播放进度、暂停等功能 只有窗体源码,需要自己建项目