android - 使用 Mediaplayer 时出现错误 -19,0?

标签 android media-player android-mediaplayer alsa

E/MediaPlayer(20473): error (-19, 0)

I/MyApp   (20473): Decoding lala.mp3

I/StagefrightPlayer(   68): setDataSource('mypath')

E/AudioFlinger(   68): no more track names available

E/AudioTrack(   68): AudioFlinger could not create track, status: -12

E/AudioSink(   68): Unable to create audio track

有人知道我为什么会收到这个吗?这通常发生在使用 mediaPLayer 播放大约 100 多个音频文件之后。我是这样玩的

public RenderResultFormat DoIt() {
   if(mp!=null){
         mp.release();
         mp = null;
     }
AudioRenderer mr = new AudioRenderer(); mp = mr.AudioRenderer(filePath);}   



private class AudioRenderer extends Activity {
    private MediaPlayer AudioRenderer(String filePath) {
//delcare mediaplayer variables, path etc
  mp= MediaPlayer.create(this, path);
 if(mp != null){  
   int duration = mp.getDuration();
                mp.start();
                try {
                    Thread.sleep(duration);
                } catch (InterruptedException e2) {
                    e2.printStackTrace();
                    System.out.println("I've been interrupted >:(");
                }
                }
}return mp;}

我错过了什么吗?对android开发很陌生。谢谢

最佳答案

这个解决方案对我来说效果很好(播放资源)。只需实现 OnCompletionListener

private void playbeep(int id) {

    MediaPlayer mPlayer;
    mPlayer = MediaPlayer.create(context, id);
    mPlayer.start();
    mPlayer.setOnCompletionListener(new OnCompletionListener() {        
        public void onCompletion(MediaPlayer mp) {
            mp.release();
        }
    });
}

关于android - 使用 Mediaplayer 时出现错误 -19,0?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7157703/

相关文章:

Android MediaPlayer 给出空异常

java - Android MediaPlayer : error (1, -2147483648) 从字符串变量引用时

来自通知栏 Intent 的 Android 调用方法

android - 使用 Laravel 为 Android 提供 mp3 流

android - 如何在 sqlite 事务中捕获异常 - java android

android - 在 Android 应用程序中自定义 Facebook 登录按钮

android - 你如何将一个 Intent 从 Activity 传递到一个已经打开的 fragment

JavaFX - MediaPlayer 不工作

android - 如何在Android上基于字符串变量播放音频文件

android - 为什么 bringToFront 只工作一次