簡體   English   中英

Mediaplayer循環因Android錯誤而停止

[英]Mediaplayer looping stops with an error Android

// 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)

這很可能是垃圾回收問題,因為您已經多次重置媒體播放器。 您重復聲音的方式是一種很怪誕的方式。 盡管我聽說set循環在使用某些文件類型循環時確實會引起間隙,但我實際上並不建議這樣做。 您是否嘗試過將文件格式設置為ogg?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM