播放多个延迟的mp3文件

时间:2015-12-27 20:17:02

标签: android

我需要我的应用程序运行多个mp3的方法。每个mp3必须在之前的mp3之后播放。 我创造了播放声音的方法

<div style="width: 300px">
  <a href="#" style="max-width:100%">
    <img style="width:100%;" src="https://upload.wikimedia.org/wikipedia/commons/1/17/Gustave_Caillebotte_-_Paris_Street%3B_Rainy_Day_-_Google_Art_Project.jpg" alt="main">
  </a>
</div>

然后我在OnCreate中调用该函数。我使用while循环播放所有mp3文件。但声音互相混淆。如果我使用循环和isPlaying方法,应用程序没有响应。

void PlaySentence(String path){
    try {            
        AssetFileDescriptor afd = getAssets().openFd(path);
        player = new MediaPlayer();
        player.setDataSource(afd.getFileDescriptor(), afd.getStartOffset(), afd.getLength());
        player.prepare();
        player.start();
    }
    catch (Exception ex)
    {
        if (BuildConfig.DEBUG)
            Log.d(TAGName, ex.getMessage());
    }
}

我也使用以下方法避免混音。它适用于一个mp3

while (currentMp3<totalMp3) {
if (!player.isPlaying()) {
            PlaySentence();
        }
}

这样做的最佳解决方案是什么?

1 个答案:

答案 0 :(得分:1)

您应该使用setOnCompletionListener,但是将您的播放器声明为类成员,在onCreate中初始化它,并且不为每个mp3创建一个新的播放器。 PlaySentence应该是:

timetuple()