账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    android 开发音乐播放器 MediaPlayer.prepare();报错
    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
    打赏
    收藏
    点击回答
        全部回答
    • 0
    • MediaPlayer.prepare()是Android中的一个方法,用于初始化MediaPlayer。当应用程序尝试播放音频文件或打开音频播放时,这个方法会被调用。以下是一些可能导致MediaPlayer.prepare()方法报错的常见原因:

      1. 文件未找到:确保音频文件的路径是正确的,文件存在并且是音频文件格式。在AndroidManifest.xml文件中,你需要添加以下标签来指定音频文件的位置:

      xml <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" /> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

      1. 文件权限问题:如果你的应用程序没有足够的权限访问音频文件,那么MediaPlayer.prepare()方法可能会抛出ActivityPermissionExceptionMediaPermissionException异常。你可能需要在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" />

      1. 文件已损坏或损坏:如果音频文件被损坏或损坏,MediaPlayer.prepare()方法可能会抛出MediaStoreExceptionIOException异常。此时,你需要检查音频文件的物理状态,确保文件没有损坏,然后重新加载音频文件。

      2. 文件类型不正确:在播放音频文件时,你需要指定音频文件的类型,即"audio/x-mpeg"或"audio/mp3"等。如果你的音频文件类型不正确,MediaPlayer.prepare()方法可能会抛出InvalidFormatException异常。你需要检查音频文件的类型,并在MediaMetadata类中正确设置音频文件的类型。

      3. 文件大小超过限制:在某些设备或系统上,可能存在音频文件的大小限制,超过了该设备或系统的音频文件大小限制。在使用MediaPlayer.prepare()方法时,你需要检查文件的大小,并在MediaMetadata类中设置文件的大小。

      4. 文件是否存在:在某些情况下,文件可能不存在,导致MediaPlayer.prepare()方法无法加载或播放音频文件。在打开文件时,你需要确保文件存在。

      5. 软件版本冲突:某些Android应用程序可能包含一个或多个音频播放器,导致MediaPlayer.prepare()方法无法正确启动。在编译或安装应用程序时,确保使用的音频播放器版本与当前Android版本兼容。

      6. 缓存问题:在某些设备或系统上,可能存在缓存问题,导致在打开或播放音频文件时出现重复的播放或加载请求。在打开文件时,你需要清理缓存,或者使用缓存管理器(如MimeDroid或MediaStore)来解决这个问题。

      在处理MediaPlayer.prepare()方法抛出的异常时,你可以使用catch语句捕获异常,并根据异常的类型和异常信息来确定具体的问题所在。例如,如果你捕获了MediaStoreException异常,你可以检查MediaStoreException的cause属性,找出文件不存在或文件大小超限等问题的根源。同时,你也可以根据异常信息来更新错误提示或警告,以便用户了解问题并采取适当的解决措施。

    更多回答
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部