Android - Gestionnaire audio

Vous pouvez facilement contrôler le volume de votre sonnerie et le profil de la sonnerie, c'est-à-dire: (silencieux, vibreur, fort, etc.) sous Android. Android fournit la classe AudioManager qui permet d'accéder à ces contrôles.

Pour utiliser la classe AndroidManager, vous devez d'abord créer un objet de la classe AudioManager en appelant le getSystemService()méthode. Sa syntaxe est donnée ci-dessous.

private AudioManager myAudioManager;
myAudioManager = (AudioManager)getSystemService(Context.AUDIO_SERVICE);

Une fois que vous instanciez l'objet de la classe AudioManager, vous pouvez utiliser setRingerModeméthode pour définir le profil audio ou de sonnerie de votre appareil. Sa syntaxe est donnée ci-dessous.

myAudioManager.setRingerMode(AudioManager.RINGER_MODE_VIBRATE);

La méthode setRingerMode prend un nombre entier comme paramètre. Pour chaque mode, un nombre entier est attribué qui différenciera les différents modes. Les modes possibles sont.

Sr. Non Mode et description
1

RINGER_MODE_VIBRATE

Ce mode met l'appareil en mode vibreur.

2

RINGER_MODE_NORMAL

Ce mode règle l'appareil en mode normal (fort).

3

RINGER_MODE_SILENT

Ce mode met l'appareil en mode silencieux.

Une fois que vous avez défini le mode, vous pouvez appeler le getRingerMode()méthode pour obtenir l'état défini du système. Sa syntaxe est donnée ci-dessous.

int mod = myAudioManager.getRingerMode();

Outre la méthode getRingerMode, il existe d'autres méthodes disponibles dans la classe AudioManager pour contrôler le volume et d'autres modes. Ils sont listés ci-dessous.

Sr. Non Méthode et description
1

adjustVolume(int direction, int flags)

Cette méthode ajuste le volume du flux le plus pertinent

2

getMode()

Cette méthode renvoie le mode audio actuel

3

getStreamMaxVolume(int streamType)

Cette méthode renvoie l'indice de volume maximal pour un flux particulier

4

getStreamVolume(int streamType)

Cette méthode renvoie l'index de volume actuel pour un flux particulier

5

isMusicActive()

Cette méthode vérifie si une musique est active.

6

startBluetoothSco()

Cette méthode Démarrer la connexion audio Bluetooth SCO

sept

stopBluetoothSco()

Cette méthode arrête la connexion audio Bluetooth SCO.

Exemple

L'exemple ci-dessous illustre l'utilisation de la classe AudioManager. Il crée une application qui vous permet de définir différents modes de sonnerie pour votre appareil.

Pour expérimenter cet exemple, vous devez l'exécuter sur un appareil réel.

Pas La description
1 Vous utiliserez l'IDE de studio Android pour créer une application Android sous un package com.example.sairamkrishna.myapplication.
2 Modifiez le fichier src / MainActivity.java pour ajouter du code AudioManager
3 Modifiez le fichier XML de mise en page res / layout / activity_main.xml, ajoutez un composant GUI si nécessaire.
4 Modifiez le fichier res / values ​​/ string.xml et ajoutez les composants de chaîne nécessaires.
5 Modifiez AndroidManifest.xml pour ajouter les autorisations nécessaires.
6 Exécutez l'application et choisissez un appareil Android en cours d'exécution, installez l'application dessus et vérifiez les résultats.

Voici le contenu de src/MainActivity.java

package com.example.sairamkrishna.myapplication;

import android.app.Activity;
import android.content.Context;
import android.media.AudioManager;
import android.os.Bundle;
import android.view.View;

import android.widget.Button;
import android.widget.Toast;


public class MainActivity extends Activity {
   Button mode,ring,vibrate,silent;
   private AudioManager myAudioManager;

   @Override
   protected void onCreate(Bundle savedInstanceState) {
      super.onCreate(savedInstanceState);
      setContentView(R.layout.activity_main);

      vibrate=(Button)findViewById(R.id.button3);
      ring=(Button)findViewById(R.id.button2);

      mode=(Button)findViewById(R.id.button);
      silent=(Button)findViewById(R.id.button4);
      myAudioManager = (AudioManager)getSystemService(Context.AUDIO_SERVICE);

      vibrate.setOnClickListener(new View.OnClickListener() {
         @Override
         public void onClick(View v) {
            myAudioManager.setRingerMode(AudioManager.RINGER_MODE_VIBRATE);
            Toast.makeText(MainActivity.this,"Now in Vibrate Mode",
               Toast.LENGTH_LONG).show();
         }
      });

      ring.setOnClickListener(new View.OnClickListener() {
         @Override
         public void onClick(View v) {
            myAudioManager.setRingerMode(AudioManager.RINGER_MODE_NORMAL);
            Toast.makeText(MainActivity.this,"Now in Ringing Mode",
               Toast.LENGTH_LONG).show();
         }
      });

      silent.setOnClickListener(new View.OnClickListener() {
         @Override
         public void onClick(View v) {
            myAudioManager.setRingerMode(AudioManager.RINGER_MODE_SILENT);
            Toast.makeText(MainActivity.this,"Now in silent Mode",
               Toast.LENGTH_LONG).show();
         }
      });

      mode.setOnClickListener(new View.OnClickListener() {
         @Override
         public void onClick(View v) {
            int mod=myAudioManager.getRingerMode();
            if(mod==AudioManager.RINGER_MODE_VIBRATE){
               Toast.makeText(MainActivity.this,"Now in Vibrate Mode",
                  Toast.LENGTH_LONG).show();
            } else if(mod==AudioManager.RINGER_MODE_NORMAL){
               Toast.makeText(MainActivity.this,"Now in Ringing Mode",
                  Toast.LENGTH_LONG).show();
            } else {
               Toast.makeText(MainActivity.this,"Now in Vibrate Mode",
                  Toast.LENGTH_LONG).show();
            }
         }
      });
   }
}

Voici le contenu de activity_main.xml

Ici abc indique le logo de tutorialspoint
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout 
   xmlns:android="http://schemas.android.com/apk/res/android"
   xmlns:tools="http://schemas.android.com/tools" 
   android:layout_width="match_parent"
   android:layout_height="match_parent" 
   android:paddingLeft="@dimen/activity_horizontal_margin"
   android:paddingRight="@dimen/activity_horizontal_margin"
   android:paddingTop="@dimen/activity_vertical_margin"
   android:paddingBottom="@dimen/activity_vertical_margin" 
   tools:context=".MainActivity">

   <TextView
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:text="Android Audio Recording"
      android:id="@+id/textView"
      android:textSize="30dp"
      android:layout_alignParentTop="true"
      android:layout_alignParentRight="true"
      android:layout_alignParentEnd="true" />
      
   <TextView
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:text="Tutorialspoint"
      android:id="@+id/textView2"
      android:textColor="#ff3eff0f"
      android:textSize="35dp"
      android:layout_below="@+id/textView"
      android:layout_centerHorizontal="true" />
      
   <ImageView
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:id="@+id/imageView"
      android:src="@drawable/abc"
      android:layout_below="@+id/textView2"
      android:layout_alignLeft="@+id/textView2"
      android:layout_alignStart="@+id/textView2"
      android:layout_alignRight="@+id/textView2"
      android:layout_alignEnd="@+id/textView2" />
      
   <Button
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:text="Mode"
      android:id="@+id/button"
      android:layout_below="@+id/imageView"
      android:layout_alignParentLeft="true"
      android:layout_alignParentStart="true"
      android:layout_marginTop="59dp" />
      
   <Button
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:text="Ring"
      android:id="@+id/button2"
      android:layout_alignTop="@+id/button"
      android:layout_centerHorizontal="true" />
      
   <Button
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:text="vibrate"
      android:id="@+id/button3"
      android:layout_alignTop="@+id/button2"
      android:layout_alignRight="@+id/textView"
      android:layout_alignEnd="@+id/textView" />
      
   <Button
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:text="Silent"
      android:id="@+id/button4"
      android:layout_below="@+id/button2"
      android:layout_alignLeft="@+id/button2"
      android:layout_alignStart="@+id/button2" />     
</RelativeLayout>

Voici le contenu de Strings.xml

<resources>
   <string name="app_name">My Application</string>
</resources>

Voici le contenu de AndroidManifest.xml

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
   package="com.example.sairamkrishna.myapplication" >

   <application
      android:allowBackup="true"
      android:icon="@drawable/ic_launcher"
      android:label="@string/app_name"
      android:theme="@style/AppTheme" >
      
      <activity
         android:name="com.example.sairamkrishna.myapplication"
         android:label="@string/app_name" >
      
         <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
         </intent-filter>
      
      </activity>
      
   </application>
</manifest>

Essayons d'exécuter votre application. Je suppose que vous avez connecté votre appareil mobile Android à votre ordinateur. Pour exécuter l'application à partir d'Android Studio, ouvrez l'un des fichiers d'activité de votre projet et cliquez sur l' icône Exécuter dans la barre d'outils. Le studio Android affichera des images

Maintenant, sélectionnez le bouton silencieux, vous obtiendrez une icône silencieuse dans la barre de notification

Maintenant, sélectionnez simplement le bouton de sonnerie, puis appuyez sur le bouton de mode actuel pour voir que si son état a été défini.

Appuyez maintenant sur le bouton Vibreur, puis appuyez sur le bouton du mode actuel pour voir que s'il est défini ou non, l'écran suivant s'affiche.