当前位置: 首页 > 知识库问答 >
问题:

Android Studio检查Mediaplayer是否在屏幕小部件活动中播放

仰城
2023-03-14

在主屏幕上有一个按钮,可以播放特定的歌曲并改变按钮的背景图像。如果用户再次点击按钮(音乐播放时),则音乐应停止,按钮的背景图像应将其自身设置回常规位置。但程序似乎无法检测我的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);
        }
    }

当我点击按钮时,它应该会设置背景图像并停止音乐,但它只是再次启动媒体播放器,背景图像保持不变。我不知道如何修复这个问题。它似乎每次都会创建一个新的媒体播放器

暂时还没有答案

 类似资料:
  • 我知道如果你想检查是否有人点击了什么,你会这样做 但是我想检查屏幕是否根本没有被点击。为了做到这一点,我会产生什么代码? 此外,作为附带说明,让Android应用程序中的所有类扩展类是个好主意吗?

  • 问题内容: 我拼命地寻找一种可能性,以检查ReactNavigation中是否存在先前的屏幕。 使用收益,如果没有以前的路由存在,但我不能使用它,因为如果以前的路由存在我重定向。 是否可以检查我是否打开了该应用程序,而不是从另一个屏幕导航到主屏幕? 谢谢。我没有使用Redux。这样会使这些东西变得更容易,但是我现在想避免使用它。 问题答案: 可能的解决方案(不确定是否是最好的解决方案)是在上一个屏

  • 即使屏幕被锁定,如何在设备上开始活动。我尝试了下面的方法,但是不起作用。 广播接收器:

  • 我有一个时钟小部件Android应用程序,我现在正试图更新到API 26的要求。 到目前为止,我使用了一个后台服务,它在启动时在其方法a中注册,以接收系统广播,例如。然后,这项服务在屏幕关闭时暂停时钟,在屏幕重新打开时唤醒时钟,以节省电池。 在Oreo中,这类服务似乎不是一个选项,因为它必须在前台运行,并带有一个对用户没有意义的通知。此外,据我在文档中看到的,也帮不上我的忙,因为我没有发现可以将作

  • 问题内容: 检查html5音频元素当前是否正在播放的JavaScript API是什么? 问题答案: 音频标签具有一个属性。如果未暂停,则正在播放。

  • 我有一个SingleChildScrollView,它有一个包含许多子项的列小部件。我希望将一组按钮“放在下一个屏幕上”(例如“PageBreak小部件”)。 我已经尝试过了,但是它产生了一个异常,因为您只应该使用一个定位小部件和一个堆栈小部件(而不是列小部件):