java android 取消静音按钮的问题

2024-04-17

我正在创建一个简单的点击计数器 Android 应用程序,单击按钮时会播放声音,并且在离开计数屏幕然后返回时也会保存计数。

我遇到了静音按钮的问题。当我单击它时,它会静音整个应用程序,而不仅仅是特定的 GUI 屏幕(活动)。

  1. 第一个问题是静音按钮会静音整个应用程序的声音,而我只需要对该活动静音。

  2. 第二个问题是,当您单击静音按钮并退出屏幕,然后返回,然后尝试取消静音 - 它不会取消声音静音。

正在考虑解决这个问题的方法是我们将静音按钮从 SharedPreferences 保存实例状态中取出 - 如果可能的话......

到目前为止,这是我的代码,如果您能指导我如何实现上述目标,那就太好了。谢谢。

public class wazeefa extends Activity {

    //Count Button
    TextView txtCount;
    ImageView image;
    Button btnCount;
    Button wmute;
    Button wreset;
    public static int count = 0;
    SharedPreferences app_preferences;
    MediaPlayer mpButtonClick;
    AudioManager audioManager;
    public static boolean mutestatus = false;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        // The activity is being created.
        setContentView(R.layout.wazeefa);


        audioManager =
                (AudioManager) getSystemService(Context.AUDIO_SERVICE);
        //SAVE COUNT
        app_preferences = this.getSharedPreferences("myPrefscount", MODE_WORLD_READABLE);


        count = app_preferences.getInt("count", 0);

        txtCount = (TextView) findViewById(R.id.wcount);
        txtCount.setText("This app has been started " + count + " times.");

        image = (ImageView) findViewById(R.id.imageview);

        txtCount = (TextView) findViewById(R.id.wcount);
        txtCount.setText("This app has been started " + count + " times.");

        //Button SOUND AND COUNT
        mpButtonClick = MediaPlayer.create(this, R.raw.bubble);
        //RESET Button
        wreset = (Button) findViewById(R.id.wreset);

        txtCount = (TextView) findViewById(R.id.wcount);
        txtCount.setText(String.valueOf(count));

        btnCount = (Button) findViewById(R.id.wclick);

        wmute = (Button) findViewById(R.id.wmute);

        btnCount.setOnClickListener(new View.OnClickListener() {
            public void onClick(View v) {

                count++;
                if (count > 50) count = 0;
                image.setImageResource(R.drawable.duroodimage);
                if (count > 0) image.setImageResource(R.drawable.duroodimage);
                if (count > 9) image.setImageResource(R.drawable.zikrimage);
                if (count > 39) image.setImageResource(R.drawable.duroodimage);
                txtCount.setText(String.valueOf(count));
                mpButtonClick.start();
            }
        });

        wreset.setOnClickListener(new View.OnClickListener() {
            public void onClick(View v) {
                count = 0;
                image.setImageResource(R.drawable.duroodimage);
                ;
                txtCount.setText("0");
                SharedPreferences.Editor editor = app_preferences.edit();
                editor.putInt("count", count);
                editor.commit();
            }
        });


        wmute.setOnClickListener(new View.OnClickListener() {
            public void onClick(View v) {
                if (!mutestatus) {
                    mutestatus = true;
                    audioManager.setMode(AudioManager.MODE_IN_CALL);
                    audioManager.setStreamSolo(AudioManager.STREAM_VOICE_CALL, true);
                    Log.v("'test....", "" + mutestatus);
                } else {
                    mutestatus = false;
                    audioManager.setMode(AudioManager.MODE_NORMAL);
                    audioManager.setStreamSolo(AudioManager.STREAM_VOICE_CALL, false);
                    Log.v("'test....", "" + mutestatus);
                }
            }
        });
    }

    @Override
    protected void onPause() {
        super.onPause();
        // save count value here

        SharedPreferences.Editor editor = app_preferences.edit();
        editor.putInt("count", count);
        editor.commit();

    }
}

您将在应用程序级别保存首选项,使其特定于活动,即为活动而不是应用程序实现静音功能。

Edit

查看您的目标是对音频进行静音和取消静音(大声),可以通过三种方式保存首选项。

1) 只能通过单个活动检索首选项。2)首选项可以在应用程序内的所有活动之间共享和检索。 3) 可以通过设备上的所有应用程序共享和检索首选项。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

java android 取消静音按钮的问题 的相关文章

  • 如何根据运行的 jar 的结果让我的 ant 任务通过或失败?

    我正在运行 CrossCheck 无浏览器 js 单元测试 作为 ant 脚本的一部分 如果 CrossCheck 测试失败 我希望 ant 报告失败 这是 build xml 中的相关部分
  • 当客户端关闭连接时,Spring StreamingResponseBody 请求线程未清理

    我在控制器中有一个端点 它返回一个StreamingResponseBody 用于向客户端发送文件 其代码大致如下 RestController RequestMapping value api public class Controlle
  • 使用 JUnit 时,有没有办法验证测试方法中是否调用了 try/catch 指令的 Catch 部分?

    例如 如果我想测试以下课程 public class SomeClass public void someMethod try Some code where comething could go wrong catch Exception
  • 在 AppAuth-Android 中注销

    我有一个用JAVA开发的Android应用程序 对于这个应用程序 我使用的是身份服务器4 https github com IdentityServer IdentityServer4作为我的 STS 一切正常 但我找不到任何注销的实现Ap
  • 从手机访问本地主机[关闭]

    这个问题不太可能对任何未来的访客有帮助 它只与一个较小的地理区域 一个特定的时间点或一个非常狭窄的情况相关 通常不适用于全世界的互联网受众 为了帮助使这个问题更广泛地适用 访问帮助中心 help reopen questions 我正在使用
  • 使用 Guice 优化注册表

    你好 今天思考了一种优化 有一些疑问 语境 我正在使用 Guice 2 进行 Java 开发 在我的网络应用程序中 我有一个转换器注册表 可以即时转换为某种类型 转换器描述如下 public class StringToBoolean im
  • 删除Android所有语言中的字符串

    我有一个包含多个翻译的应用程序 我想删除一些字符串 我怎样才能重构并删除它们一次 例如在默认情况下strings xml文件并自动将删除传播到其他翻译的其他 strings xml 文件 您可以通过 Android Studio 中的 翻译
  • Java Swing For mac 中的 DJ Native Swing 浏览器

    我有一个用 Swing 制作的 Java 应用程序 并且使用了一个 DJ Native Swing 浏览器 当我尝试在 OS X 上使用它时 它抛出了一个NoClassDefFoundError尽管我添加了 swt jar 但始终如此 有人
  • Android:打开和关闭SQLite数据库

    我正在开发Android应用程序 我经常在其中访问本地数据库 该数据库可以从不同的主题访问 因此我遇到了数据库的协调问题 我使用以下open and close method public void open mDb mDbHelper g
  • 使用 Mockito 模拟某些方法,但不模拟其他方法

    有没有办法使用 Mockito 模拟类中的某些方法 而不模拟其他方法 例如 在这个 诚然是人为的 Stock我想嘲笑的班级getPrice and getQuantity 返回值 如下面的测试片段所示 但我想要getValue 执行乘法 如
  • Java实现累加器类,提供Collector

    A Collector具有三种通用类型 public interface Collector
  • JMenu 中的文本居中

    好吧 我一直在网上寻找有关此问题的帮助 但我尝试的任何方法似乎都不起作用 我想让所有菜单文本都集中在菜单按钮上 当我使用setHorizontalTextPosition JMenu CENTER 没有变化 事实上 无论我使用什么常量 菜单
  • 是否可以使用 Java Guava 将函数应用于集合?

    我想使用 Guava 将函数应用于集合 地图等 基本上 我需要调整 a 的行和列的大小Table分别使所有行和列的大小相同 执行如下操作 Table
  • “无法实例化活动”错误

    我的一个 Android 应用程序拥有大约 100 000 个用户 每周大约 10 次 我会通过 Google 的市场工具向我报告以下异常情况 java lang RuntimeException Unable to instantiate
  • 更改Android菜单的背景颜色[重复]

    这个问题在这里已经有答案了 我正在尝试将标准浅灰色更改为浅绿色 似乎没有一个简单的方法可以做到这一点 例如 通过 Android 主题 但我找到了一个解决方法 如本页所述 http tinyurl com 342dgn3 http tiny
  • Java Swing:需要一个高质量的带有复选框的开发 JTree

    我一直在寻找一个 Tree 实现 其中包含复选框 其中 当您选择一个节点时 树中的所有后继节点都会被自动选择 当您取消选择一个节点时 树中其所有后继节点都会自动取消选择 当已经选择了父节点 并且从其后继之一中删除了选择时 节点颜色将发生变化
  • 使用按钮作为列表的渲染器

    我想使用一个更复杂的渲染器 其中包含列表的多个组件 更准确地说 类似于this https stackoverflow com questions 10840498 java swing 1 6 textinput like firefox
  • 如何重新启动死线程? [复制]

    这个问题在这里已经有答案了 有哪些不同的可能性可以带来死线程回到可运行状态 如果您查看线程生命周期图像 就会发现一旦线程终止 您就无法返回到新位置 So 没有办法将死线程恢复到可运行状态 相反 您应该创建一个新的 Thread 实例
  • [cocos2d-x]当我尝试在 Windows 10 中运行“python android-build.py -p 19 cpp-tests”时出现错误

    当我尝试运行命令时python android build p cpp tests 我收到如图所示的错误 在此之前 我收到了另一条关于 Android SDK Tools 版本兼容性的错误消息 所以 我只是将 sdk 版本从 26 0 0
  • Java EE 目录结构

    我对以下教程有疑问 http www mkyong com jsf2 jsf 2 internationalization example http www mkyong com jsf2 jsf 2 internationalizatio

随机推荐