zoukankan      html  css  js  c++  java
  • Android开发Mediaplayer总是报prepareAsync called in state 8和error(1,-2147483648)错误

    昨天编写一个播放软件在软件都完成的时候,首先在模拟器上使用总是提示一个错误:called in state8.

    自己反复的查看代码移植没有发现问题的所在,后来就把android的API对于这个类的介绍又给看了看,发现了问题所在。

    一开始的代码如下:

    MediaPlayer mPlayer=MediaPlayer.create(MainActivity.this, R.raw.c);
                    
                    mPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC);
                    
                    mPlayer.setDisplay(sHolder);
                    
                    try {
                        mPlayer.prepare();
                        
                    } catch (IllegalStateException e) {
                        e.printStackTrace();
                    } catch (IOException e) {
                        e.printStackTrace();
                    }
                    
                    mPlayer.start();

    后来查看后,发现这句代码MediaPlayer mPlayer=MediaPlayer.create(MainActivity.this, R.raw.c);执行完的时候其实已经相当于执行了mPlayer.prepare(),所以才会总是出现一个错误:prepareAsync called in state 8。

    做相应的改变

    try {
                        
                        if (mPlayer!=null) {
                            mPlayer.stop();
                        }
                        
                        mPlayer.prepare();

    }

    就可以解决相应的错误。

    当这个问题解决之后,我再次运行之后又发现了一个问题,总是报一个错误:error(1,-2147483648)

    最后在网上查找资料之后,发现这个问题是模拟器的问题,可能是不同的版本系统或硬件对视频的格式支持不同的原因,最后自己就将软件部署到真实的手机上,发现可以正常的运行

  • 相关阅读:
    git
    fragment
    Builder模式
    代码混淆
    android studio快捷键
    小知识点
    angular组件使用
    英语摘要2019-6-4
    英语笔记2019-4-3
    搭建Eureka注册中心时遇到的问题
  • 原文地址:https://www.cnblogs.com/YangMT/p/4744161.html
Copyright © 2011-2022 走看看