gpt4 book ai didi

android - 当网络关闭并重新打开时,FFmpegMediaPlayer 停止

转载 作者:行者123 更新时间:2023-12-04 23:26:38 24 4
gpt4 key购买 nike

我目前正在使用 FFmpegMediaPlayer 来制作一个给定 url 的基本音乐播放器。我得到了工作的基本功能。出错时,我会显示错误消息,否则我会播放歌曲。
我面临的问题是,一旦播放器启动,我关闭了我的 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 后继续流式传输。

最佳答案

找到了解决方案。

我的主要目标是创建一个像 radio 一样的媒体播放器。

我尝试了 MediaPlayer,它可以工作,但它往往会经常停止。

然后我尝试了 vitamio 和 FFmpegMediaPlayer。 Vitamio 令人困惑,FFmpegMediaPlayer 不支持流错误。

我目前正在使用 Google 的 Exo Player。这里有一个很好的教程:https://codelabs.developers.google.com/codelabs/exoplayer-intro/index.html?index=..%2F..%2Findex#0

关于android - 当网络关闭并重新打开时,FFmpegMediaPlayer 停止,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44036891/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com