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