【问题标题】:Is it possible to react to headphone volume up/down keys in an Android application?是否可以对 Android 应用程序中的耳机音量增大/减小键做出反应?
【发布时间】:2012-10-29 05:40:56
【问题描述】:

我想知道是否真的可以对 Android 应用程序中的耳机音量控制按钮做出反应。每当我使用支持 iPhone/iPod 的耳机时,我都可以在各种音乐应用程序中使用暂停/前进/后退按钮,但它们都无法对音量控制做出反应。

我搜索了很多,但没有找到直接解决此问题的任何内容。

我很好奇这是否是对 Android 平台或我正在使用的应用程序的限制。如果不是限制,我将如何在我自己的 Android 应用程序中从耳机捕获音量摇杆事件。

iPhone/iPod 似乎能够通过 3.5 毫米插孔对所有耳机事件做出反应。在我看来,在 Android 中也应该可以。

【问题讨论】:

    标签: android media


    【解决方案1】:

    这是 100% 与应用程序本身相关的问题。有很多很好的例子可以解决这个问题。例如,您可以通过以下方式解决此问题:

    private MPR mediaPlayerReceiver = new MPR();
    
    onCreate() {
       ...
       IntentFilter mediaFilter = new IntentFilter(Intent.ACTION_MEDIA_BUTTON);
       // this is nasty, since most apps set it to 9999, so you need to be higher
       mediaFilter.setPriority(999);
       this.registerReceiver(mediaPlayerReceiver, mediaFilter);
       ...
    }
    
    MPR  extends BroadcastReceiver {
        public MPR() {
            super();
        }
    
        @Override
        public void onReceive(Context context, Intent intent) {
            String intentAction = intent.getAction();
            if (!Intent.ACTION_MEDIA_BUTTON.equals(intentAction)) {
                return;
            }
            KeyEvent event = (KeyEvent)intent.getParcelableExtra(Intent.EXTRA_KEY_EVENT);
            if (event == null) {
                return;
            }
            try {
                int action = event.getAction();
                switch(action) {
                    case KeyEvent.ACTION_DOWN :
                        // handle play/pause here
                        break;
                }
            } catch (Exception e) {
                // something bad happened
            }
            abortBroadcast();
        }
    }
    

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-01-31
    • 2020-06-26
    • 2019-10-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多