gpt4 book ai didi

android mediaplayer mediacontroller超时

转载 作者:太空宇宙 更新时间:2023-11-03 13:34:51 25 4
gpt4 key购买 nike

我已经实现了一个媒体播放器和媒体 Controller ,可以流式传输 mp3 url。然而,我的设备在 TMobile 网络上没有很好的 3G 信号,所以它在 EDGE 上运行。我假设媒体播放器崩溃是因为流太慢或不完整,我可以设置超时吗?

最佳答案

MediaPlayer中没有timeout方法,但您可以自己实现 - 有多种方法可以做到这一点。我建议其中之一,我自己使用并且对我有用 - BroadcastReceiver代码看起来像这样:

public class ConnectivityCheckingReceiver extends WakefulBroadcastReceiver
{
private AlarmManager alarmManager;
private PendingIntent pendingIntent;

@Override
public void onReceive(Context context, Intent intent)
{
if (MusicService.mediaPlayer != null)
{
if (!MusicService.mediaPlayer.isPlaying())
Log.v("Music", "Music is NOT playing");
//stop service and notify user
else
Log.v("Music", "Music is playing");
}
else
{
Log.v("Music", "User stopped player");
}
}
public void setAlarm (Context context, int hour, int minute, int second)
{
alarmManager = (AlarmManager) context.getSystemService(Context.ALARM_SERVICE);
Intent intent = new Intent(context, ConnectivityCheckingReceiver.class);
pendingIntent = PendingIntent.getBroadcast(context, 0, intent, 0);
Calendar calendar = Calendar.getInstance();
calendar.set(Calendar.HOUR_OF_DAY, hour);
calendar.set(Calendar.MINUTE, minute);
calendar.set(Calendar.SECOND, second);
alarmManager.set(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(), pendingIntent);
}
}

在您的 Activity/服务/fragment 中添加此行:

ConnectivityCheckingReceiver conCheck = new ConnectivityCheckingReceiver();
conCheck.setAlarm(context, hour, min, second);

您需要自己实现时/分/秒检查逻辑,但使用 Joda Time 等库可以轻松完成.并且不要忘记添加到您的 list 中:

<uses-permission android:name="android.permission.WAKE_LOCK" />
<receiver android:name=".receivers.ConnectivityCheckingReceiver" />

ps,我的解决方案并不完美,但是我还没有看到这个问题的任何好的答案,所以如果找到一个,请分享。

关于android mediaplayer mediacontroller超时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8542607/

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