0

我正在开发一个应用程序,我需要从服务器检索多个音频文件并将它们显示在一个活动中。如果服务器上有两个音频文件,那么我的活动中应该动态显示两个音频播放器,如果有 5 个音频文件,那么 5音频播放器应附带相应的音频文件。检索一个音频文件并播放它很容易。我需要的是检索超过 1 个音频文件并在单独的播放器中播放它们。请帮忙?

4

1 回答 1

1

您应该使用 MediaPlayer 类来从远程服务器流式传输您的音频。您可以设置流式网址这样做:

MediaPlayer mMediaPlayer = new MediaPlayer(); // initialize it here
mMediaPlayer.setOnPreparedListener(this);
mMediaPlayer.setOnCompletionListener(this);
mMediaPlayer.setOnErrorListener(this);
mMediaPlayer.setOnBufferingUpdateListener(this);
mMediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC);

mMediaPlayer.setDataSource("http://yoursongurl.com");

如果您想在同一个活动上拥有多个独立的流媒体播放器,那么您必须实例化完全不同的媒体播放器。类似的东西

String[] urls = { "url1", "url2" };
MediaPlayer[] media = new MediaPlayer[ urls.length ];

for(int i = 0; i < urls.length; i++){
    media[i] = createMediaPlayer( url );
}


private MediaPlayer createMediaPlayer(String url){
     mMediaPlayer = new MediaPlayer(); // initialize it here
     mMediaPlayer.setOnPreparedListener(this);
     mMediaPlayer.setOnCompletionListener(this);
     mMediaPlayer.setOnErrorListener(this);
     mMediaPlayer.setOnBufferingUpdateListener(this);
     mMediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC);

     mMediaPlayer.setDataSource(url);

    return mMediaPlayer;
}

为多首歌曲使用多个媒体播放器是最简单的解决方案,但效率也较低。如果您想要一个更有效的解决方案,您可以实例化单个媒体播放器,并在您想在运行时播放下一首歌曲时保存前一首歌曲的状态。

你可以在这里找到一些参考:http: //developer.android.com/reference/android/media/MediaPlayer.html

于 2012-07-02T09:57:24.540 回答