0

サーバーから複数のオーディオ ファイルを取得し、それらを 1 つのアクティビティで表示する必要があるアプリケーションを開発しています。サーバーに 2 つのオーディオ ファイルがある場合、動的に 2 つのオーディオ プレーヤーをアクティビティに表示する必要があります。5 つのオーディオ ファイルがある場合は 5オーディオ プレーヤーには、それぞれのオーディオ ファイルが付属している必要があります。1 つのオーディオ ファイルを取得して再生するのは簡単です。私が必要としているのは、複数のオーディオ ファイルを取得し、それらを別々のプレーヤーで再生することです。助けてください?

4

1 に答える 1

1

リモート サーバーからオーディオをストリーミングするには、MediaPlayer クラスを使用する必要があります。これを行うことで、ストリーミング URL を設定できます。

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 に答える