【Android】實驗7 BindService類比通訊 截止提交日期2016.5.3

來源:互聯網
上載者:User

標籤:

實驗7 BindService類比通訊

【目的】

實現啟動端和BindService之間的雙向通訊

【要求】

1)   實現從啟動端傳遞一個資料至BindService端;

2)   實現使用BindService服務播放項目源檔案中的音樂;

3)   實現在啟動端通過“增加”和“降低”兩個按鈕控制音頻音量大小。

4)   實現在啟動端通過“暫停”按鈕控制音頻暫停播放。

 

【原理】

  1. 參考教案,理解BindService和啟動端的通訊原理
  2. AudioManager的理解

AudioManager類位於android.Media 包中,該類提供存取控制音量和鈴聲模式的操作。

通過getSystemService(Context.AUDIO_SERVICE)方法獲得AudioManager執行個體對象。

AudioManager audiomanage = (AudioManager)context.getSystemService(Context.AUDIO_SERVICE);

audiomanager就是我們定義的控制系統聲音的對象。

幾個比較常用到的方法:

1)        adjustVolume(int direction, int flags):用來控制手機音量大小,當傳入的第一個參數為AudioManager.ADJUST_LOWER 時,可將音量調小一個單位,傳入AudioManager.ADJUST_RAISE時,則可以將音量調大一個單位。

2)        adjustStreamVolume(intstreamType, int direction, intflags):(以步長)調節手機音量大小

參數1:聲音類型,可取為STREAM_VOICE_CALL(通話)、STREAM_SYSTEM(系統聲音)、STREAM_RING(鈴聲)、STREAM_MUSIC(音樂)、STREAM_ALARM(鬧鈴聲)

參數2:調整音量的方向,可取ADJUST_LOWER(降低)、ADJUST_RAISE(升高)、ADJUST_SAME
參數3:可選的標誌位

3)        setStreamVolume(intstreamType, int index, intflags):直接設定音量大小

4)        getStreamVolume(intstreamType):取得當前手機的音量,最大值為7,最小值為0,當為0時,手機自動將模式調整為“震動模式”。

5)        setStreamMute(intstreamType, boolean state):設定靜音

 

部分參考代碼:

//音量控制,初始化定義

AudioManager mAudioManager = (AudioManager)getSystemService(Context.AUDIO_SERVICE);

以一步步長控制音量的增減,並彈出系統預設音量控制條:

//降低音量,調出系統音量控制

if(flag ==0){

mAudioManager.adjustStreamVolume(AudioManager.STREAM_MUSIC,AudioManager.ADJUST_LOWER,

AudioManager.FX_FOCUS_NAVIGATION_UP);

}

//增加音量,調出系統音量控制

elseif(flag ==1){

mAudioManager.adjustStreamVolume(AudioManager.STREAM_MUSIC,AudioManager.ADJUST_RAISE,

AudioManager.FX_FOCUS_NAVIGATION_UP);

}

 

其他常用方法:

android audioManager擷取音量:

先擷取AudioManager執行個體,
AudioManagermAudioManager = (AudioManager)getSystemService(Context.AUDIO_SERVICE);

//通話音量

int max = mAudioManager.getStreamMaxVolume(AudioManager.STREAM_VOICE_CALL ); 

int current = mAudioManager.getStreamVolume(AudioManager.STREAM_VOICE_CALL ); 

//系統音量

int max = mAudioManager.getStreamMaxVolume(AudioManager.STREAM_SYSTEM ); 

current = mAudioManager.getStreamVolume(AudioManager.STREAM_SYSTEM ); 

//鈴聲音量

max = mAudioManager.getStreamMaxVolume( AudioManager.STREAM_RING); 

current = mAudioManager.getStreamVolume(AudioManager.STREAM_RING ); 

//音樂音量

max = mAudioManager.getStreamMaxVolume(AudioManager.STREAM_MUSIC ); 

current = mAudioManager.getStreamVolume(AudioManager.STREAM_MUSIC ); 

 

//提示聲音音量

max = mAudioManager.getStreamMaxVolume(AudioManager.STREAM_ALARM ); 

current = mAudioManager.getStreamVolume(AudioManager.STREAM_ALARM ); 

//最大音量

intmaxVolume =mAudioManager.getStreamMaxVolume(AudioManager.STREAM_MUSIC);

//當前音量

intcurrentVolume =mAudioManager.getStreamVolume(AudioManager.STREAM_MUSIC);

//直接控制音量的多少:

 

 

 

 

if(isSilent){

mAudioManager.setStreamVolume(AudioManager.STREAM_MUSIC,0,0);

}else{

mAudioManager.setStreamVolume(AudioManager.STREAM_MUSIC,tempVolume,0);//tempVolume:音量絕對值

}

 

實驗報告要求

1)     詳細寫出自己所做實驗的步驟和內容;

2)     詳細記錄實驗過程中發現的問題以及解決問題的方法;

3)     給出程式運行過程中各個頁面的;

4)     提交檔案包括:實驗報告、原始碼、可啟動並執行安裝程式,所有檔案打包壓縮;

5)     壓縮包命名格式:專業+學號+姓名+實驗7.rar

 

【Android】實驗7 BindService類比通訊 截止提交日期2016.5.3

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.