Android - Administrador de audio
Puede controlar fácilmente el volumen del timbre y el perfil del timbre, es decir: (silencio, vibración, alto, etc.) en Android. Android proporciona la clase AudioManager que proporciona acceso a estos controles.
Para usar la clase AndroidManager, primero debe crear un objeto de la clase AudioManager llamando al getSystemService()método. Su sintaxis se da a continuación.
private AudioManager myAudioManager;
myAudioManager = (AudioManager)getSystemService(Context.AUDIO_SERVICE);
Una vez que crea una instancia del objeto de la clase AudioManager, puede usar setRingerModemétodo para configurar el perfil de audio o timbre de su dispositivo. Su sintaxis se da a continuación.
myAudioManager.setRingerMode(AudioManager.RINGER_MODE_VIBRATE);
El método setRingerMode toma un número entero como parámetro. Para cada modo, se asigna un número entero que diferenciará entre los diferentes modos. Los modos posibles son.
No Señor | Modo y descripción |
---|---|
1 | RINGER_MODE_VIBRATE Este modo configura el dispositivo en modo de vibración. |
2 | RINGER_MODE_NORMAL Este modo configura el dispositivo en modo normal (alto). |
3 | RINGER_MODE_SILENT Este modo configura el dispositivo en modo silencioso. |
Una vez que haya configurado el modo, puede llamar al getRingerMode()método para obtener el estado establecido del sistema. Su sintaxis se da a continuación.
int mod = myAudioManager.getRingerMode();
Además del método getRingerMode, hay otros métodos disponibles en la clase AudioManager para controlar el volumen y otros modos. Se enumeran a continuación.
No Señor | Método y descripción |
---|---|
1 | adjustVolume(int direction, int flags) Este método ajusta el volumen de la transmisión más relevante |
2 | getMode() Este método devuelve el modo de audio actual |
3 | getStreamMaxVolume(int streamType) Este método devuelve el índice de volumen máximo para una secuencia en particular. |
4 | getStreamVolume(int streamType) Este método devuelve el índice de volumen actual para una secuencia en particular. |
5 | isMusicActive() Este método comprueba si hay música activa. |
6 | startBluetoothSco() Este método inicia la conexión de audio bluetooth SCO |
7 | stopBluetoothSco() Este método detiene la conexión de audio bluetooth SCO. |
Ejemplo
El siguiente ejemplo demuestra el uso de la clase AudioManager. Crea una aplicación que le permite configurar diferentes modos de timbre para su dispositivo.
Para experimentar con este ejemplo, debe ejecutarlo en un dispositivo real.
Pasos | Descripción |
---|---|
1 | Utilizará Android Studio IDE para crear una aplicación de Android en un paquete com.example.sairamkrishna.myapplication. |
2 | Modifique el archivo src / MainActivity.java para agregar el código AudioManager |
3 | Modifique el archivo XML de diseño res / layout / activity_main.xml agregue cualquier componente GUI si es necesario. |
4 | Modifique el archivo res / values / string.xml y agregue los componentes de cadena necesarios. |
5 | Modifique AndroidManifest.xml para agregar los permisos necesarios. |
6 | Ejecute la aplicación y elija un dispositivo Android en ejecución e instale la aplicación en él y verifique los resultados. |
Aquí está el contenido 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();
}
}
});
}
}
Aquí está el contenido de activity_main.xml
Aquí abc indica el 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>
Aquí está el contenido de Strings.xml
<resources>
<string name="app_name">My Application</string>
</resources>
Aquí está el contenido 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>
Intentemos ejecutar su aplicación. Supongo que ha conectado su dispositivo móvil Android real con su computadora. Para ejecutar la aplicación desde Android Studio, abra uno de los archivos de actividad de su proyecto y haga clic en el
Ahora seleccione el botón de silencio, obtendrá el icono de silencio en la barra de notificaciones
Ahora simplemente seleccione el botón de anillo y luego presione el botón de modo actual para ver si se ha establecido su estado.
Ahora presione el botón Vibrar y luego presione el botón de modo actual para ver si está configurado o no, se mostrará la siguiente pantalla.