Android Mediaplayer:播放多种声音

时间:2015-02-08 16:22:50

标签: android android-mediaplayer soundpool

在我的应用程序中,我必须一个接一个地播放许多声音(下载并存储在SD卡上的mp3文件)。 所以我使用了一个基本的MediaPlayer并设置了setOnCompletionListener方法来继续播放下一个媒体文件:

    mediaPlayer = new MediaPlayer();
    mediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC);
    mediaPlayer.setDataSource(PATH + Constants.Medias.PATH + SLASH + (pref + 1) + SLASH + AppUtils.format(suffix + 1) + AppUtils.format(currentMediaFile));

我的一个大问题是从文件切换到下一个文件时有GAP ...它会产生一种扰乱用户的奇怪噪音。 您是否知道如何播放这些文件,就好像它们是“一条轨道”(连续)。

1 个答案:

答案 0 :(得分:2)

您可以尝试创建MediaPlayer两个实例(让我们称之为 M1 M2 )。

  • M1 开始播放第一个文件( F1
  • M1 正在播放时, M2 开始准备 F2 (仅调用prepare()
  • M1 完成时,其OnCompletionListener触发M2开始播放
  • 继续使用 M2 反转 M1 ,直到所有文件都已播放完毕。

如果这不起作用且仍然听到噪音,请尝试使用SoundPool代替MediaPlayer