Android - Gerenciador de Áudio
Você pode controlar facilmente o volume da campainha e o perfil da campainha, ou seja: (silencioso, vibrar, alto etc.) no Android. O Android fornece a classe AudioManager que fornece acesso a esses controles.
Para usar a classe AndroidManager, você deve primeiro criar um objeto da classe AudioManager chamando o getSystemService()método. Sua sintaxe é fornecida a seguir.
private AudioManager myAudioManager;
myAudioManager = (AudioManager)getSystemService(Context.AUDIO_SERVICE);
Depois de instanciar o objeto da classe AudioManager, você pode usar setRingerModemétodo para definir o perfil de áudio ou toque de seu dispositivo. Sua sintaxe é fornecida a seguir.
myAudioManager.setRingerMode(AudioManager.RINGER_MODE_VIBRATE);
O método setRingerMode usa um número inteiro como parâmetro. Para cada modo, um número inteiro é atribuído para diferenciar entre os diferentes modos. Os modos possíveis são.
Sr. Não | Modo e descrição |
---|---|
1 | RINGER_MODE_VIBRATE Este modo define o dispositivo no modo de vibração. |
2 | RINGER_MODE_NORMAL Este modo define o dispositivo no modo normal (alto). |
3 | RINGER_MODE_SILENT Este modo define o dispositivo no modo silencioso. |
Depois de definir o modo, você pode chamar o getRingerMode()método para obter o estado definido do sistema. Sua sintaxe é fornecida a seguir.
int mod = myAudioManager.getRingerMode();
Além do método getRingerMode, existem outros métodos disponíveis na classe AudioManager para controlar o volume e outros modos. Eles estão listados abaixo.
Sr. Não | Método e descrição |
---|---|
1 | adjustVolume(int direction, int flags) Este método ajusta o volume do stream mais relevante |
2 | getMode() Este método retorna o modo de áudio atual |
3 | getStreamMaxVolume(int streamType) Este método retorna o índice de volume máximo para um determinado fluxo |
4 | getStreamVolume(int streamType) Este método retorna o índice de volume atual para um fluxo particular |
5 | isMusicActive() Este método verifica se alguma música está ativa. |
6 | startBluetoothSco() Este método inicia a conexão de áudio bluetooth SCO |
7 | stopBluetoothSco() Este método interrompe a conexão de áudio bluetooth SCO. |
Exemplo
O exemplo a seguir demonstra o uso da classe AudioManager. Ele cria um aplicativo que permite definir diferentes modos de toque para o seu dispositivo.
Para experimentar este exemplo, você precisa executá-lo em um dispositivo real.
Passos | Descrição |
---|---|
1 | Você usará o Android Studio IDE para criar um aplicativo Android em um pacote com.example.sairamkrishna.myapplication. |
2 | Modifique o arquivo src / MainActivity.java para adicionar o código AudioManager |
3 | Modifique o arquivo XML de layout res / layout / activity_main.xml e adicione qualquer componente GUI, se necessário. |
4 | Modifique o arquivo res / values / string.xml e adicione os componentes de string necessários. |
5 | Modifique AndroidManifest.xml para adicionar as permissões necessárias. |
6 | Execute o aplicativo e escolha um dispositivo Android em execução, instale o aplicativo nele e verifique os resultados. |
Aqui está o conteúdo 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();
}
}
});
}
}
Aqui está o conteúdo de activity_main.xml
Aqui abc indica o logotipo do 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>
Aqui está o conteúdo de Strings.xml
<resources>
<string name="app_name">My Application</string>
</resources>
Aqui está o conteúdo 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>
Vamos tentar executar seu aplicativo. Presumo que você tenha conectado seu dispositivo Android Mobile real ao computador. Para executar o aplicativo do Android Studio, abra um dos arquivos de atividade do seu projeto e clique no
Agora selecione o botão silencioso, você obteria o ícone silencioso na barra de notificação
Agora, basta selecionar o botão de toque e, em seguida, pressionar o botão do modo atual para ver se seu status foi definido.
Agora pressione o botão Vibrar e, em seguida, pressione o botão de modo atual para ver se ele está configurado ou não. Será exibida a tela a seguir.