我目前正在与FFmpegMediaPlayer合作,以便为一个基本的音乐播放器提供一个网址。我得到了基本功能。出错,我显示错误信息,否则我播放歌曲。 我面临的问题是,一旦播放器启动,我关闭了我的wifi和手机数据,就会停止声音。一旦我将我的wifi或手机数据转回一个,我希望播放器继续,但它只是停止。我必须停下来再玩一遍才能继续。
有没有办法让FFmpegMediaPlayer继续流式传输?
这是我必须初始化播放器:
mMediaPlayer = new FFmpegMediaPlayer();
mMediaPlayer.setOnErrorListener(this);
mMediaPlayer.setOnPreparedListener(this);
mMediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC);
mMediaPlayer.setOnBufferingUpdateListener(this);
mMediaPlayer.setOnSeekCompleteListener(this);
try {
Uri uri = Uri.parse(radio_url);
mMediaPlayer.setDataSource(mMainActivity, uri);
mMediaPlayer.prepareAsync();
} catch (IllegalArgumentException e) {
e.printStackTrace();
} catch (SecurityException e) {
e.printStackTrace();
} catch (IllegalStateException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
然后我有一个功能来处理单击播放/停止按钮时:
@Override
public void onPlayButtonClicked(Button button) {
if (radioInitialized) {
mAnalytics.onStopButtonClicked();
mMainLayout.loading(false);
mMediaPlayer.pause();
button.setBackground(mMainActivity.getResources().getDrawable(R.drawable.play_button));
radioInitialized = false;
} else {
mAnalytics.onPlayButtonClicked();
mMainLayout.loading(true);
initRadio();
button.setBackground(mMainActivity.getResources().getDrawable(R.drawable.stop_button));
radioInitialized = true;
}
}
同样,基本功能有效,但我希望在重新启用wifi后继续流式传输。
答案 0 :(得分:0)
找到解决方案。
我的主要目标是创建一个像收音机一样的媒体播放器。
我尝试过MediaPlayer但它有效,但它往往会经常停止。
然后我尝试了vitamio和FFmpegMediaPlayer。 Vitamio令人困惑,FFmpegMediaPlayer不支持流错误。
我目前正在使用Google的Exo Player。这里有一个非常好的教程:https://codelabs.developers.google.com/codelabs/exoplayer-intro/index.html?index=..%2F..%2Findex#0