- 58
- 0
android 播放音乐 MediaPlayer.prepare();报错。点击多次后才崩溃
/**
* 播放音乐
* @param path
*/
public void play(String path){
if(mediaPlayer!=null){
mediaPlayer.reset();
try {
mediaPlayer.setDataSource(path);
mediaPlayer.prepare();
mediaPlayer.start();
} catch (Exception e) {
e.printStackTrace();
}
}
}
报错:
FATAL EXCEPTION: main
Process: cn.com.mymusic, PID: 11807
java.lang.IllegalStateException
at android.media.MediaPlayer._prepare(Native Method)
at android.media.MediaPlayer.prepare(MediaPlayer.java:1143)
at cn.com.mymusic.MusicService.play(MusicService.java:101) - 共 0 条
- 全部回答
-
岢吥岢苡吥崾視婼兂睹 普通会员 1楼
MediaPlayer.prepare()是Android中的一个方法,用于初始化MediaPlayer。当应用程序尝试播放音频文件或打开音频播放时,这个方法会被调用。以下是一些可能导致MediaPlayer.prepare()方法报错的常见原因:- 文件未找到:确保音频文件的路径是正确的,文件存在并且是音频文件格式。在AndroidManifest.xml文件中,你需要添加以下标签来指定音频文件的位置:
xml <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" /> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />- 文件权限问题:如果你的应用程序没有足够的权限访问音频文件,那么
MediaPlayer.prepare()方法可能会抛出ActivityPermissionException或MediaPermissionException异常。你可能需要在AndroidManifest.xml文件中添加相应的权限声明,例如:
xml <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" /> <uses-permission android:name="android.permission.MOUNT_EXTERNAL_STORAGE" />-
文件已损坏或损坏:如果音频文件被损坏或损坏,
MediaPlayer.prepare()方法可能会抛出MediaStoreException或IOException异常。此时,你需要检查音频文件的物理状态,确保文件没有损坏,然后重新加载音频文件。 -
文件类型不正确:在播放音频文件时,你需要指定音频文件的类型,即"audio/x-mpeg"或"audio/mp3"等。如果你的音频文件类型不正确,
MediaPlayer.prepare()方法可能会抛出InvalidFormatException异常。你需要检查音频文件的类型,并在MediaMetadata类中正确设置音频文件的类型。 -
文件大小超过限制:在某些设备或系统上,可能存在音频文件的大小限制,超过了该设备或系统的音频文件大小限制。在使用
MediaPlayer.prepare()方法时,你需要检查文件的大小,并在MediaMetadata类中设置文件的大小。 -
文件是否存在:在某些情况下,文件可能不存在,导致
MediaPlayer.prepare()方法无法加载或播放音频文件。在打开文件时,你需要确保文件存在。 -
软件版本冲突:某些Android应用程序可能包含一个或多个音频播放器,导致
MediaPlayer.prepare()方法无法正确启动。在编译或安装应用程序时,确保使用的音频播放器版本与当前Android版本兼容。 -
缓存问题:在某些设备或系统上,可能存在缓存问题,导致在打开或播放音频文件时出现重复的播放或加载请求。在打开文件时,你需要清理缓存,或者使用缓存管理器(如MimeDroid或MediaStore)来解决这个问题。
在处理
MediaPlayer.prepare()方法抛出的异常时,你可以使用catch语句捕获异常,并根据异常的类型和异常信息来确定具体的问题所在。例如,如果你捕获了MediaStoreException异常,你可以检查MediaStoreException的cause属性,找出文件不存在或文件大小超限等问题的根源。同时,你也可以根据异常信息来更新错误提示或警告,以便用户了解问题并采取适当的解决措施。
- 扫一扫访问手机版
回答动态

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器更新之后。服务器里面有部分玩家要重新创建角色是怎么回事啊?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题函数计算不同地域的是不能用内网吧?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题ARMS可以创建多个应用嘛?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题在ARMS如何申请加入公测呀?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题前端小程序接入这个arms具体是如何接入监控的,这个init方法在哪里进行添加?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器刚到期,是不是就不能再导出存档了呢?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器的游戏版本不兼容 尝试更新怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器服务器升级以后 就链接不上了,怎么办?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器转移以后服务器进不去了,怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器修改参数后游戏进入不了,是什么情况?预计能赚取 0积分收益
- 回到顶部
- 回到顶部

