【问题标题】:Mediaplayer looping stops with an error AndroidMediaplayer 循环停止并出现错误 Android
【发布时间】:2015-04-20 16:59:36
【问题描述】:
// Will need this in the callbacks 
final AssetFileDescriptor afd = getResources().openRawResourceFd(R.raw.sample);
 
// Build and start first player 
final MediaPlayer player1 = MediaPlayer.create(this, R.raw.sample);
player1.start(); 
 
// Ready second player 
final MediaPlayer player2 = MediaPlayer.create(this, R.raw.sample);
player1.setNextMediaPlayer(player2); 
 
player1.setOnCompletionListener(new MediaPlayer.OnCompletionListener() { 
    @Override 
    public void onCompletion(MediaPlayer mediaPlayer) {
 
        // When player1 completes, we reset it, and set up player2 to go back to player1 when it's done 
        mediaPlayer.reset();
        try { 
            mediaPlayer.setDataSource(afd.getFileDescriptor(), afd.getStartOffset(), afd.getLength());
            mediaPlayer.prepare();
        } catch (Exception e) {
            e.printStackTrace();
        } 
 
        player2.setNextMediaPlayer(player1);
    } 
}); 
player2.setOnCompletionListener(new MediaPlayer.OnCompletionListener() {
    @Override 
    public void onCompletion(MediaPlayer mediaPlayer) {
        // Likewise, when player2 completes, we reset it and tell it player1 to user player2 after it's finished again 
        mediaPlayer.reset();
        try { 
            mediaPlayer.setDataSource(afd.getFileDescriptor(), afd.getStartOffset(), afd.getLength());
            mediaPlayer.prepare();
        } catch (Exception e) {
            e.printStackTrace();
        } 
 
        player1.setNextMediaPlayer(player2);
    } 
}); 
 
// This loop repeats itself endlessly in this fashion without gaps 

这是我发现循环音频文件没有任何间隙的唯一方法,并且一切正常。但在随机完成 10-15 次循环后,Mediaplayer 每次显示不同的错误并停止播放音频。尝试使用具有不同编码类型的不同音频不同的文件格式,但我随机得到不同的相同错误。提前致谢。

E/MediaPlayer(24311): 错误 (1, -38)

E/MediaPlayer(23256):错误(1,-1007)

E/MediaPlayer(23546):错误 (1,-2147483648)

【问题讨论】:

    标签: android android-mediaplayer


    【解决方案1】:

    这很可能是垃圾收集问题,因为您多次重置媒体播放器。你重复声音的方式是一种非常老套的方式。我真的不建议这样做,尽管我听说设置循环在使用某些文件类型循环时确实会导致间隙。您是否尝试过将文件格式化为 ogg?

    【讨论】:

    • 我使用了 wav、mp3 和 ogg 文件,但音频在循环之间仍然存在间隙。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-09-18
    • 1970-01-01
    • 2012-08-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多