java - 媒体播放器返回错误并且没有声音播放

标签 java android android-mediaplayer media

我一直在测试为应用程序启动声音创建的基本媒体播放器。媒体是从我的 firebase 数据库中包含的 URL 中提取的。媒体播放器可以在较早的模拟器上运行,但不能在任何真实设备上运行。

错误代码是 MediaPlayer start called in state 0 (Error -38, 0)。 我读到这是因为在播放媒体之前 onprepare 没有准备好,所以我添加了一个 onPreparelistener 并且它仍然给出相同的错误。接下来我可以尝试什么?

public class harropMediaplayer {
MediaPlayer player;
String media;
Context c;
public harropMediaplayer(String media,Context c){
    this.media = media;
    this.c = c;
    Log.i("Sound: ","Initalized");

}

public void volumeSetting(){

    SharedPreferences sharedpreferences = PreferenceManager.getDefaultSharedPreferences(c);

    boolean bnSoundMute = sharedpreferences.getBoolean("soundMute",false);

    if(bnSoundMute==true){
mutevol();
        Log.i("sound","muted");

    }else{
volmax();
        Log.i("sound","max vol");
    }
}
public void plysound() {



    player = new MediaPlayer();

    Log.i("Url", media);
    try {
        player.setDataSource(media);
    } catch (IOException e) {
        e.printStackTrace();
    }
    catch (IllegalStateException o){
        o.printStackTrace();
    }
    try {
        player.prepare();
        volumeSetting();
        player.setOnPreparedListener(new MediaPlayer.OnPreparedListener() {
            public void onPrepared(MediaPlayer mp) {
               if (!mp.isPlaying()){
                   mp.start();
               }

            }

        });


    } catch (IOException e) {
        e.printStackTrace();
    }

    Log.i("Sound playing", "Ok");




}

public void stopplying(){
    player.stop();

}
public void volmax(){
    player = App_Objects.mp;
    player.setVolume(1,1);
}
public void mutevol(){
    player = App_Objects.mp;
    player.setVolume(0,0);
} 

最佳答案

onPrepareListener 和准备不一样,你只需要调用:

mediaPlayer.prepare();

关于java - 媒体播放器返回错误并且没有声音播放,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48873448/

相关文章:

java - 使用 org.apache.commons.net.ftp.FTPClient 从 AsyncTask 类登录 FTP 时出错

java - 数组比较是否相等

java - 为什么 MediaPlayer 没有准备好?

java - 如何在 Java Android 的 onLocationChanged 中播放一次 MediaPlayer?

java - 初学者android帮助从可运行内部播放音频

java - 如何导出包含 sqlite 数据库的 jar?

java - 如何处理路径变量中的特殊字符

javascript - React-native android 无法加载 js 包 :Changes in index. android.js 在 apk 中看不到

android - 在 Android 中处理 DatePicker 6-8-2014 到 06-08-2014 中的零?

android - Git/Github APK 失败