1

所以我有一个带有音频文件 ID 的数组。但这取决于用户将有多少个 id(他键入“a”并且 R.raw.a 出现在数组中)。如何使用 MediaPlayer 一个接一个地播放这些声音。我想我应该使用 OnCompletionListener,但我不知道数组中有多少声音 id。我应该使用

for(){}
4

3 回答 3

1

你能做的是

//define a variable to be used as index.
int audioindex = 0;
//Extract the files id into an array
int[] audioFileIds=new int[]{R.raw.as,R.raw.bs};

然后在你MediaPlayer onCompletionListener放的东西如下。

然后在您的 OnCompletionListener 中。

mp.setOnCompletionListener(new OnCompletionListener(){
    // @Override
    public void onCompletion(MediaPlayer player) {
    // File has ended, play the next one.
   FunctionPlayFile(audioFileIds[audioindex]);
   audioindex+=1; //increment the index to get the next audiofile
     }
});
于 2012-06-18T12:22:48.340 回答
1

您可以为 OnCompletionListener 设置 MediaPlayer

public class MyActivity extends Activity
    implements MediaPlayer.OnCompletionListener {

    MediaPlayer player = null;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        player = new MediaPlayer();
        player.setOnCompletionListener(this);
        ...
    }

    @Override
    public void onCompletion(MediaPlayer mp) {
        // Called when playback is complete
        //Play a next song
        ...
    }
}

欢迎!

于 2012-06-18T12:13:22.453 回答
0

使用 IntentService 播放歌曲。所有使用intentservice开始的歌曲都将在队列中。它会一个接一个地播放。

于 2012-06-18T12:14:56.103 回答