gpt4 book ai didi

java - 在 Android 上禁用所有音效(也包括硬件键)

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:42:26 26 4
gpt4 key购买 nike

我正在 Samsung Galaxy S3 上测试我的应用程序,它有两个触摸按钮:后退按钮和菜单按钮

我将所有 Root View 的 soundEffectsEnabled 设置为 false,并尝试制作自定义主题(如 here 中指出的那样)并将该主题设置为应用程序的 list 文件(我也尝试将它添加到每个 Activity 元素)。没有成功。

这是我在 res/values 中的 xml 文件:

<?xml version="1.0" encoding="utf-8"?>
<resources>
<style name="MyCustomTheme" parent="@android:style/Theme.NoTitleBar.Fullscreen">
<item name="android:soundEffectsEnabled">false</item>
</style>
</resources>

还有我的 Application 元素的开始标记:

<application
android:icon="@drawable/icon"
android:label="@string/app_name"
android:theme="@style/MyCustomTheme" >

它可以正常构建和运行NoTitleBar.Fullscreen 也可以,但返回和菜单触摸按钮仍然播放声音

最佳答案

您可以使用 AudioManager在您的应用程序或任何 Activity 运行时将所有系统声音静音。

setStreamMute(int, boolean)

Mute or unmute an audio stream.

The mute command is protected against client process death: if a process with an active mute request on a stream dies, this stream will be unmuted automatically.

The mute requests for a given stream are cumulative: the AudioManager can receive several mute requests from one or more clients and the stream will be unmuted only when the same number of unmute requests are received.

For a better user experience, applications MUST unmute a muted stream in onPause() and mute is again in onResume() if appropriate.

所以,实现看起来像这样

@Override
protected void onResume() {
super.onResume();
AudioManager audioManager = (AudioManager)getSystemService(Context.AUDIO_SERVICE);
audioManager.setStreamMute(AudioManager.STREAM_SYSTEM, true);
}

@Override
protected void onPause() {
AudioManager audioManager = (AudioManager)getSystemService(Context.AUDIO_SERVICE);
audioManager.setStreamMute(AudioManager.STREAM_SYSTEM, false);
super.onPause();
}

关于java - 在 Android 上禁用所有音效(也包括硬件键),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11657896/

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