在android应用程序中加载音频文件
我有一个服务器,服务器上有许多音频文件,这些文件会不时添加。我想把这些文件加载到我的android应用程序中,这样就可以播放它们了。我该怎么做呢在android应用程序中加载音频文件,android,android-studio,Android,Android Studio,我有一个服务器,服务器上有许多音频文件,这些文件会不时添加。我想把这些文件加载到我的android应用程序中,这样就可以播放它们了。我该怎么做呢 我正在使用本机androidSimple AudioHandler类来播放、暂停、恢复音频等 public class AudioHandler { private SimpleExoPlayer simpleExoPlayer; //Start Playing public void playAudio(String URL) { t
我正在使用本机androidSimple AudioHandler类来播放、暂停、恢复音频等
public class AudioHandler {
private SimpleExoPlayer simpleExoPlayer;
//Start Playing
public void playAudio(String URL) {
try {
if(simpleExoPlayer == null) {
simpleExoPlayer = ExoPlayerFactory.newSimpleInstance(
new DefaultRenderersFactory(mContext),
new DefaultTrackSelector(),
new DefaultLoadControl());
}
// Preparing from url
Uri uri = Uri.parse(URL);
MediaSource mediaSource = buildMediaSource(uri);
simpleExoPlayer.prepare(mediaSource, true, false);
simpleExoPlayer.setPlayWhenReady(true);
simpleExoPlayer.addListener(new Player.DefaultEventListener() {
@Override
public void onPlayerStateChanged(boolean playWhenReady, int playbackState) {
super.onPlayerStateChanged(playWhenReady, playbackState);
switch(playbackState) {
case Player.STATE_READY:
// Update UI -- Audio has start playing
break;
case Player.STATE_ENDED:
ReleaseMediaPlayer();
// Update UI -- Audio has ended
break;
default:
break;
}
}
@Override
public void onPlayerError(ExoPlaybackException error) {
super.onPlayerError(error);
ReleaseMediaPlayer();
// Update UI -- error
}
});
} catch (Exception e) {
e.printStackTrace();
}
}
public void pauseAudio(){
try{
if (simpleExoPlayer != null) {
simpleExoPlayer.setPlayWhenReady(false);
}
} catch (Exception e) {
e.printStackTrace();
}
}
public void resumeAudioa(){
try{
if (simpleExoPlayer != null) {
simpleExoPlayer.setPlayWhenReady(true);
}
} catch (Exception e) {
e.printStackTrace();
}
}
public void ReleaseMediaPlayer(){
try{
if (simpleExoPlayer != null) {
simpleExoPlayer.release();
simpleExoPlayer = null;
}
} catch (Exception e) {
e.printStackTrace();
}
}
private MediaSource buildMediaSource(Uri uri) {
return new ExtractorMediaSource.Factory(
new DefaultHttpDataSourceFactory("exoplayer-audios")).
createMediaSource(uri);
}
// Constructor and other methods...
}您需要流式传输音频文件还是需要下载手机内存中的所有音频文件?从服务器流式传输。所以有多个文件,我希望用户能够点击他们想要收听的文件,无论他们选择哪个。