成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

Android音樂編程:控制應用程序的音量和播放

移動開發 Android
Android 系統保持相互獨立的音頻流通道來播放音樂,報警,通知,來電鈴聲,系統聲音,呼叫(通話)音量,和 DTMF 音調(鍵盤撥號)。這樣做主要是為了使用戶能夠獨立地控制每個流的音量。

識別音頻流

創造優秀音頻體驗的***步是了解您的應用程序將使用的音頻流類型。

Android 系統保持相互獨立的音頻流通道來播放音樂,報警,通知,來電鈴聲,系統聲音,呼叫(通話)音量,和 DTMF 音調(鍵盤撥號)。

這樣做主要是為了使用戶能夠獨立地控制每個流的音量。

多數的流僅限于系統事件,所以,除非您的應用程序是要更換鬧鐘,否則幾乎可以肯定的是使用 STREAM_MUSIC 音頻流。

使用硬件音量按鍵來控制應用程序的音量

默認情況下,按音量鍵控制修改當前獲得焦點的音頻流的音量。假如您的應用程序當前不是正在播放音樂,或者沒有運行,那么音量鍵將會調整振鈴的音量。

如果您有一個游戲或音樂應用程序,當用戶點擊音量鍵的時候,即使他們目前正在瀏覽歌曲,或者沒有停留在當前的音樂游戲的位置,他們仍然希望控制游戲或音樂的音量。

您可以通過接收音量控制鍵的按鍵消息來修改當前的音頻流音量。不過不用那么麻煩 ,Android 已經提供了方便的 setVolumeControlStream() 方法來根據您指定的音頻流來自動調節音量。

首先確定您的應用程序將使用的音頻流,然后通過 setVolumeControlStream 方法設置其為當前焦點的音頻流。

這個方法應該被及早調用,并且在生命周期中只需要調用一次即可,所以通常應在 Activity 或者 Fragment 的 OnCreate() 內 調用。

這將確保只要你的應用程序是可見狀態的,音量控制功能就是用戶所期望的效果(即控制當前應用程序的音量)。

代碼示例:

  1. setVolumeControlStream(AudioManager.STREAM_MUSIC);  

從現在開始,按設備上的音量鍵將影響您指定的(示例“音樂”)的音頻流。

使用硬件播放控制按鍵來控制應用程序的音頻播放

很多手機和許多無線耳機都附帶有媒體播放控制按鈕,如播放,暫停,停止,跳過。每當用戶按下這些硬件鍵,系統就會廣播 ACTION_MEDIA_BUTTON  動作。

為了響應媒體按鈕的點擊事件,您需要注冊 BroadcastReceiver 來監聽廣播。

代碼示例:

  1. <receiver android:name=".RemoteControlReceiver"> 
  2.   <intent-filter> 
  3.      <action android:name="android.intent.action.MEDIA_BUTTON"   /> 
  4.   </intent-filter> 
  5. </receiver> 

Receiver 中需要知道到底是按下了哪個鍵的具體信息,Intent 中包括了 EXTRA_KEY_EVENT 鍵值,可以通過它來取得KeyEvent 類型的值 ,KeyEvent中的KEYCODE_MEDIA_*靜態常量表示了所有的媒體按鈕類型,如 KEYCODE_MEDIA_PLAY_PAUSEKEYCODE_MEDIA_NEXT 等等。

代碼示例:

  1. public class RemoteControlReceiver extends BroadcastReceiver { 
  2.   @Override 
  3.   public void onReceive(Context context, Intent intent) { 
  4.     if (Intent.ACTION_MEDIA_BUTTON.equals(intent.getAction())) { 
  5.       KeyEvent event = (KeyEvent)intent.getParcelableExtra(Intent.EXTRA_KEY_EVENT); 
  6.       if (KeyEvent.KEYCODE_MEDIA_PLAY == event.getKeyCode()) { 
  7.         // Handle key press. 
  8.         // 處理播放按鍵的消息 
  9.       } 
  10.    } 
  11.  } 

因為多個應用程序可能會接聽和響應媒體按鍵消息,您必須以編程方式控制您的應用程序何時應該接受媒體按鈕事件。

在您的應用程序中可以使用 AudioManager  來注冊和取消注冊媒體按鈕的事件接收器,注冊時,使用您的專用事件接收器。

示例代碼 :

AudioManager am = mContext.getSystemService(Context.AUDIO_SERVICE);
...
// Start listening for button presses 開始 監 聽
am.registerMediaButtonEventReceiver(RemoteControlReceiver);
...
// Stop listening for button presses 取消 監 聽
am.unregisterMediaButtonEventReceiver(RemoteControlReceiver);

通常情況下,應用程序在失去焦點或不在屏幕顯示隱藏到后臺的時候, 應注銷其大部分的接聽器(如在 onStop() 回調函數中) 。

然而,對于媒體播放應用程序卻沒有這么簡單,事實上,最重要的是,當您的應用程序是處于不可見的狀態時,此時不能由屏幕上的 UI 控制,但是仍然需要響應媒體播放控制按鈕(最典型的就是后臺播放音樂) 。

所以,一個更好的方法是:當您的應用程序獲得和失去音頻焦點的時候分別注冊和注銷媒體按鈕的事件接收器,而不僅僅是依賴于應用程序的界面狀態 。

具體方案請參考下一節課程。

參考文摘:

https://developer.android.com/training/managing-audio/volume-playback.html

 

原文鏈接:

http://blog.zhourunsheng.com/2011/12/android-%E9%9F%B3%E4%B9%90%E7%BC%96%E7%A8%8B%E4%B8%93%E9%A2%98%E4%B9%8B%E6%8E%A7%E5%88%B6%E5%BA%94%E7%94%A8%E7%A8%8B%E5%BA%8F%E7%9A%84%E9%9F%B3%E9%87%8F%E5%92%8C%E6%92%AD%E6%94%BE/

責任編輯:佚名 來源: 潤物無聲的博客
相關推薦

2010-10-09 16:12:29

Android

2011-11-03 09:41:35

Android簽名安全性

2010-02-26 14:40:15

Python應用程序

2013-12-04 15:20:33

Android SDK應用程序

2019-10-28 09:50:12

Windows 10音量設備

2012-04-25 22:56:10

Android

2010-08-01 15:29:04

AndroidDalvik

2010-03-03 16:45:46

Android應用程序

2011-05-24 16:09:57

Androi

2022-09-27 15:16:42

開發Android應用程序

2009-07-03 06:57:32

2010-08-11 15:48:04

DB2編程

2010-08-11 15:48:04

DB2編程

2022-09-01 08:00:00

響應式編程集成

2010-01-25 13:29:53

Android本地應用

2020-08-25 14:03:20

應用程序屏蔽應用程序內保護網絡攻擊

2012-08-17 17:56:15

2011-05-27 10:13:39

Android 簽名

2009-06-10 11:47:32

Android應用程序模塊

2011-05-10 13:56:27

Android應用程序Android MarAndroid
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 国产一区二区精品在线观看 | 在线成人一区 | 欧美日韩手机在线观看 | 日韩欧美国产精品综合嫩v 一区中文字幕 | 亚洲成人免费视频 | 中国一级特黄毛片大片 | 欧美激情啪啪 | 成人在线精品 | 国产精品a久久久久 | 在线观看涩涩视频 | 超碰婷婷 | 日韩视频免费在线 | 国产一区二区三区在线 | 亚洲一区免费视频 | 亚州精品天堂中文字幕 | 久久国产亚洲 | ww 255hh 在线观看 | 观看毛片 | av一区二区在线观看 | 日本高清精品 | 成人黄色在线观看 | 久久久久久精 | 伊人久久综合 | 国产高清视频在线观看 | 久草网站| 在线观看国产精品视频 | 成人网址在线观看 | 黄色一级片视频 | 91精品国产综合久久精品 | 国产精品高潮呻吟久久aⅴ码 | 国产精品毛片一区二区三区 | 91麻豆精品国产91久久久更新资源速度超快 | 一级黄色片在线看 | 九九久久久 | 亚洲精品视频三区 | 国产精品日韩欧美 | 欧美a级成人淫片免费看 | 色婷婷综合网 | 国产真实乱对白精彩久久小说 | 欧美久久精品一级黑人c片 91免费在线视频 | 狠狠的干|