Android開發教學
Android 開發環境配置
Android 架構
Android 應用組件
Android Hello World示例
Android 資源組織和訪問
Android Activity
Android Service
Android廣播接收器
Android內容提供者
Android碎片/片段
Android Intent過濾器
Android UI佈局
Android LinearLayout
Android RelativeLayout
Android TableLayout
Android AbsoluteLayout
Android FrameLayout
Android ListView
Android GridView
Android UI控件
Android TextView
Android EditText
Android AutoCompleteTextView
Android Button
Android ImageButton
Android CheckBox
Android ToggleButton
Android RadioButton
Android RadioGroup
Android事件處理
Android樣式和主題
Android樣式示例
Android主題示例
Android自定義組件
Android拖放
Android通知
Android基於位置服務
Android發送電子郵件
Android發送短信/SMS
Android撥打電話
發佈Android應用
ArrayAdapter
SimpleCursorAdapter
Android ProgressDialog
Android Spinner
使用活動代碼自定義Android組件
使用佈局文件自定義Android組件
Android自定義組件及屬性
Android Alertdialog(警告對話框)
Android Animation(動畫)實例
Android音頻捕獲(錄音)
Android音頻管理器實例
Android AutoCompleteTextView(自動完成)實例
Android最佳實踐
Android Bluetooth(藍牙)實例
Android Camera(攝像頭)
Android Clipboard(複製/剪貼板)
Android自定義字體
Android數據備份
Android Gestures/手勢
Android圖片效果
Android圖片切換
Android內部存儲
Android JetPlayer實例
Android JSON解析器
Android加載Spinner
Android本地化
Android登錄實例
Android MediaPlayer(多媒體播放)

Android音頻管理器實例

可以輕鬆地控制鈴聲音量和鈴聲配置文件,即:(無聲,震動,響亮等)在Android中。 Android提供了訪問這些控件AudioManager類。

爲了使用AndroidManager類,必須通過調用getSystemService()方法首先創建AudioManager類的一個對象。以下是其語法給出如下。

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

實例化AudioManager類的對象之後,可以使用setRingerMode方法來設置設備的音頻或振鈴。以下給出的語法。

myAudioManager.setRingerMode(AudioManager.RINGER_MODE_VIBRATE);

該setRingerMode方法取整數作爲參數。對於每種模式,整數倍分配,將不同的模式之間區分在可能的模式。

Sr.No

Mode & 描述

1

RINGER_MODE_VIBRATE
這種模式設置設備的振動模式

2

RINGER_MODE_NORMAL
這種模式設置設備在正常(大聲)模式

3

RINGER_MODE_SILENT
這種模式設置設備在靜音模式

設定模式之後,可以調用getRingerMode()方法來獲得系統的設置狀態。其語法如下給出。

int mod = myAudioManager.getRingerMode();

除了setRingerMode方法,還有其他的方法,在AudioManager類來控制音量和其他模式。它們如下面列出。

Sr.No

方法及說明

1

adjustVolume(int direction, int flags)
這個方法調整最相關的數據流的量

2

getMode()
這個方法返回當前的音頻模式

3

getStreamMaxVolume(int streamType)
此方法返回一個特定流的最大容積指數

4

getStreamVolume(int streamType)
此方法返回一個特定流中的當前量指數

5

isMusicActive()
此方法檢查任何音樂是否是活動的

6

startBluetoothSco()
這個方法啓動藍牙SCO音頻連接

7

stopBluetoothSco()
這個方法停止藍牙SCO音頻連接。

例子

下面的例子演示瞭如何使用AudioManager類。該包裝箱是一個基本的應用程序,允許設置不同的鈴聲模式。

爲了試驗這個例子,需要在實際設備上運行此程序。

Steps

描述

1

使用Android Studio創建Android應用程序,並將其命名爲AudioManager,創建這個項目確保目標SDK編譯在Android SDK最新版本或使用更高級別的API

2

修改 src/MainActivity.java 文件中添加AudioManager代碼

3

修改所需的佈局XML文件res/layout/activity_main.xml添加GUI組件

4

修改 res/values/string.xml 文件,並添加必要的字符串組成部分

5

修改AndroidManifest.xml 添加必要的權限

6

運行應用程序並選擇運行Android的設備,並在其上安裝的應用和驗證結果。

這裏是 src/com.yiibai.audiomanager/MainActivity.java 的內容 

package com.yiibai.audiomanager; import android.media.AudioManager; import android.os.Bundle; import android.app.Activity; import android.content.Context; import android.view.Menu; import android.view.View; import android.widget.Button; import android.widget.TextView; public class MainActivity extends Activity { private Button Vibrate , Ring , Silent , Mode; private TextView Status; private AudioManager myAudioManager; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); Vibrate = (Button)findViewById(R.id.button2); Ring = (Button)findViewById(R.id.button4); Silent = (Button)findViewById(R.id.button3); Mode = (Button)findViewById(R.id.button1); Status = (TextView)findViewById(R.id.textView2); myAudioManager = (AudioManager)getSystemService(Context.AUDIO_SERVICE); } public void vibrate(View view){ myAudioManager.setRingerMode(AudioManager.RINGER_MODE_VIBRATE); } public void ring(View view){ myAudioManager.setRingerMode(AudioManager.RINGER_MODE_NORMAL); } public void silent(View view){ myAudioManager.setRingerMode(AudioManager.RINGER_MODE_SILENT); } public void mode(View view){ int mod = myAudioManager.getRingerMode(); if(mod == AudioManager.RINGER_MODE_NORMAL){ Status.setText("Current Status: Ring"); } else if(mod == AudioManager.RINGER_MODE_SILENT){ Status.setText("Current Status: Silent"); } else if(mod == AudioManager.RINGER_MODE_VIBRATE){ Status.setText("Current Status: Vibrate"); } else{ } } @Override public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present. getMenuInflater().inflate(R.menu.main, menu); return true; } }

這裏是 activity_main.xml 內容

<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:paddingBottom="@dimen/activity_vertical_margin" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" tools:context=".MainActivity" > <TextView android:id="@+id/textView1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentTop="true" android:layout_centerHorizontal="true" android:layout_marginTop="25dp" android:text="@string/audio" android:textAppearance="?android:attr/textAppearanceLarge" /> <Button android:id="@+id/button2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignBaseline="@+id/button3" android:layout_alignBottom="@+id/button3" android:layout_alignRight="@+id/textView1" android:onClick="vibrate" android:text="@string/Vibrate" /> <Button android:id="@+id/button3" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentBottom="true" android:layout_alignParentLeft="true" android:layout_marginBottom="144dp" android:layout_marginLeft="40dp" android:layout_toLeftOf="@+id/button2" android:onClick="silent" android:text="@string/Silent" /> <Button android:id="@+id/button4" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignBaseline="@+id/button1" android:layout_alignBottom="@+id/button1" android:layout_toRightOf="@+id/button1" android:onClick="ring" android:text="@string/Ring" /> <Button android:id="@+id/button1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_above="@+id/button2" android:layout_alignLeft="@+id/button3" android:layout_marginBottom="15dp" android:onClick="mode" android:text="@string/Mode" /> <TextView android:id="@+id/textView2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_below="@+id/textView1" android:layout_centerHorizontal="true" android:layout_marginTop="46dp" android:text="@string/Status" android:textAppearance="?android:attr/textAppearanceMedium" />

這裏是 Strings.xml 的內容

<string name="app_name">AudioManager <string name="action_settings">Settings <string name="hello_world">Hello world! <string name="audio">Set Audio Profiles <string name="Ring">Ring <string name="Vibrate">Vibrate <string name="Silent">Silent <string name="Mode">Current Mode <string name="Status">Current Status

這裏是 AndroidManifest.xml 的內容

<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.yiibai.audiomanager" android:versionCode="1" android:versionName="1.0" > <uses-sdk android:minSdkVersion="8" android:targetSdkVersion="17" /> <application android:allowBackup="true" android:icon="@drawable/ic_launcher" android:label="@string/app_name" android:theme="@style/AppTheme" > <activity android:name="com.yiibai.audiomanager.MainActivity" android:label="@string/app_name" > <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" />

讓我們試着運行Androidmanager應用程序。啓動應用程序之前會顯示如下窗口,選擇要運行 Android應用程序的選項。

Android音頻管理器實例

選擇移動設備作爲一個選項,然後檢查移動設備將顯示如下畫面。

Anroid

現在,只需選擇"Ring"按鈕,然後按目前的模式按鈕來查看,如果其狀態已設置。

Anroid

現在按靜音"silent"鍵,然後按目前的模式按鈕,看看它被設置與否。它會顯示以下畫面。

Anroid

現在按振動"vibrate"按鈕,然後按目前的模式按鈕,看看它被設置與否。它會顯示以下畫面。 

Anroid

以上實例代碼下載: http://pan.baidu.com/s/1i37p4lZ