2011-08-20 113 views
13

有什么方法可以通过Android服务来监听音量变化并对此做出反应?音量变化监听器?

btw:即使音乐在后台播放,Google音乐应用程序如何让用户控制媒体音量?

回答

12

退房registerMediaButtonEventReceiver(ComponentName broadcastReceiver);

定义BroadcastReceiver,处理ACTION_MEDIA_BUTTON。接收到的intent包含一个附加字段EXTRA_KEY_EVENT,其中包含导致广播的关键事件。您可以使用此键事件来获取按下哪个键。编辑:
这只是一个示例代码。语法错误可能在那里。

// in onCreate of activity 
registerMediaButtonEventReceiver(mediaReceiver); 

// later somewhere in activity. 
MediaButton_Receiver mediaReceiver = new MediaButton_Receiver(); 

class MediaButton_Receiver implements BroadcastReceiver { 
    void onReceive(Intent intent) { 

      KeyEvent ke = (KeyEvent)intent.getExtra(Intent.EXTRA_KEY_EVENT); 
      if (ke .getKeyCode() == KeyEvent.KEYCODE_VOLUME_DOWN) { 

      } 
      // Similarly other key codes ....... 
    } 
} 

注销在onPause()onStop()

+0

接收器,你能不能给的是请的例子吗? – kevdliu

+0

我已经添加了示例代码。但它有语法错误。也应该检查操作键或键入。首先,这很好,稍后添加。 – Ronnie

+0

另外不要忘记取消注册接收器,否则使用媒体按钮事件的其他应用程序可能会受到影响。 – Ronnie