香港专业教育学院实现了流媒体的MP3 URL的mediaplayer和mediacontroller.但是,我在TMobile网络上的设备无法获得很好的3G信号,因此可以在EDGE上运行.我假设媒体播放器因流太慢或不完整而崩溃,是否可以设置超时?
解决方法:
MediaPlayer中没有超时方法,但是您可以自己实现-有多种方法可以执行.
我建议其中之一,我用了自己,对我有用-broadcastReceiver
代码如下所示:
@H_403_12@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); }}
在活动/服务/片段中添加以下行:
@H_403_12@ConnectivityCheckingReceiver conCheck = new ConnectivityCheckingReceiver();conCheck.setAlarm(context, hour, min, second);
您将需要自己实现小时/分钟/秒检查逻辑,但是使用Joda Time之类的库就可以轻松实现.
并且不要忘记添加到清单中:
@H_403_12@<uses-permission androID:name="androID.permission.WAKE_LOCK" /><receiver androID:name=".receivers.ConnectivityCheckingReceiver" />
附言:我的解决方案不是完美的,但是我没有看到关于此问题的任何好答案,因此,如果找到一个,请分享.
总结以上是内存溢出为你收集整理的Android Mediaplayer MediaController超时全部内容,希望文章能够帮你解决Android Mediaplayer MediaController超时所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)