2011-01-23 84 views
3

我有以下要求。是否可以通過Android應用程序控制Android中默認媒體播放器的音量

我正在開發一個Android移動應用程序。計時器已針對活動的特定持續時間進行設置。

  1. 我需要發揮「嘟」的一聲三次當定時器時間是10秒即可完成(即爲零),兩次「嘟嘟」的聲音時,定時器持續時間爲5秒即可完成&定時器完成後,一旦發出「嗶」聲。

  2. 用戶可能正在使用Android手機的默認音樂播放器播放音樂,同時使用Android移動應用程序。我需要實現邏輯,以便當從移動應用程序播放「嘟嘟」聲音時,我需要先降低默認音樂的音量,然後播放「嘟嘟」聲音&,再次重置爲原始音量後「嗶」聲已經播放了所需的次數。

我想知道,這是否在技術上是可行的。

回答

1

的一種方式應用程序「鴨」。這可以讓你告訴系統..「嘿,我要玩一些東西,告訴其他應用也播放音頻,可以繼續播放但降低音量」。

以下是Managing Audio Focus部分的相關示例代碼和註釋。

請求瞬態音頻焦點時,您有另外的選項: 是否要啓用「避讓」。通常情況下,當一個性能良好的音頻應用程序失去音頻焦點時,它會立即使其 播放停止。通過請求一個瞬間的音頻焦點,允許你避開 ,你告訴其他音頻應用程序他們可以保持 播放,只要他們降低音量直到焦點返回到 即可。

AudioManager am = mContext.getSystemService(Context.AUDIO_SERVICE); 
// Request audio focus for playback 
int result = am.requestAudioFocus(afChangeListener, 
          // Use the music stream. 
          AudioManager.STREAM_NOTIFICATION, 
          //tell them it's ok to duck 
          AudioManager.AUDIOFOCUS_GAIN_TRANSIENT_MAY_DUCK); 

if (result == AudioManager.AUDIOFOCUS_REQUEST_GRANTED) { 
    // Start playback. 
} 

我希望它可以幫助別人。