Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Mute webview in android apps

Tags:

I'm building an app that includes some WebViews.

I want to mute one of them (not the whole app or device just that specific WebView) I searched but there's no certain answer to this question. Is there anyone knows how to mute a WebView sound in Android?

like image 263
Alexander Jones Avatar asked Jan 16 '17 12:01

Alexander Jones


People also ask

What apps use Android WebView?

Many Android apps like Gmail, Twitter, or Reddit apps usually display content from the internet. Google has made it easy for developers to render internet content in their apps through Android System WebView.

Is Android WebView deprecated?

This interface was deprecated in API level 12. This interface is now obsolete.


1 Answers

You can't mute only WebViews volume, but you can mute the whole system volume when you are showing the WebView. Like :
When you are showing that particular WebView use the below method :

public static void mute(Context context) {
    AudioManager mAudioManager = (AudioManager) context.getSystemService(Context.AUDIO_SERVICE);
    int mute_volume = 0;
    mAudioManager.setStreamVolume(AudioManager.STREAM_MUSIC, mute_volume, 0);
}

And when the webView is not shown set max volume Like :

public static void unmute(Context context) {
    AudioManager mAudioManager = (AudioManager) context.getSystemService(Context.AUDIO_SERVICE);
    int unmute_volume = mAudioManager.getStreamMaxVolume(AudioManager.STREAM_MUSIC);
    mAudioManager.setStreamVolume(AudioManager.STREAM_MUSIC, unmute_volume, 0);
}

If you don't want to set full volume you can get current system volume by

mAudioManager.getStreamVolume(AudioManager.STREAM_MUSIC);

and save it locally and set it back again when you exit the Webview.

like image 189
Akshay Bhat 'AB' Avatar answered Sep 21 '22 10:09

Akshay Bhat 'AB'