【发布时间】:2022-06-23 04:21:59
【问题描述】:
主屏幕上有一个按钮,可以播放某首歌曲并更改按钮的背景图像。如果用户再次点击按钮(当音乐播放时),那么音乐应该停止并且按钮的背景图像应该自己回到一般位置。但看起来程序无法检测到我的 Mediaplayer 是否正在播放。我在这里错过了什么?
@Override
public void onReceive(Context context, Intent intent) {
super.onReceive(context, intent);
AppWidgetManager appWidgetManager= AppWidgetManager.getInstance(context);
RemoteViews rv= new RemoteViews(context.getPackageName(),
R.layout.playbtn_widget);
if (intent.getAction().equals("btnPlay")) {
if (!mediaPlayer.isPlaying()) {
mediaPlayer= MediaPlayer.create(context,R.raw.itsmylife);
mediaPlayer.start();
rv.setImageViewResource(R.id.imbtnwidget,
R.drawable.btnk32);
} else {
mediaPlayer.stop();
}
mediaPlayer.setOnCompletionListener(mediaPlayer -> {
rv.setImageViewResource(R.id.imbtnwidget,
R.drawable.btnk3);
appWidgetManager.updateAppWidget(new ComponentName(context,
BtnAppWidgetProvider.class), rv);
});
appWidgetManager.updateAppWidget(new ComponentName(context,
BtnAppWidgetProvider.class), rv);
}
}
当我点击按钮时,它应该设置背景图像并停止音乐,但它只是再次启动媒体播放器并且背景图像保持不变。我不知道如何解决这个问题。似乎它每次都会创建一个新的媒体播放器
【问题讨论】:
标签: java android android-mediaplayer media