首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >安卓MediaSession对耳机没有反应

安卓MediaSession对耳机没有反应
EN

Stack Overflow用户
提问于 2015-11-09 00:32:41
回答 1查看 926关注 0票数 0

我是android的新手,我正在创建一个音乐播放器。我不熟悉MediaSession,现在我有了一个可以正常工作的音乐播放器,但它不支持对耳机点击或来电暂停的反应。

这是我的代码:

代码语言:javascript
复制
    ComponentName mediaButtonReceiver = new ComponentName(context, MusicPlayerNotificationReceiver.class);
    final MediaSessionCompat mediaSession = new MediaSessionCompat(context, "Start MP", mediaButtonReceiver, null);
    mediaSession.setFlags(MediaSessionCompat.FLAG_HANDLES_MEDIA_BUTTONS | MediaSessionCompat.FLAG_HANDLES_TRANSPORT_CONTROLS);
    LockerActivity.getInstance().runOnUiThread(new Runnable() {
        @Override
        public void run() {
            mediaSession.setCallback(MusicPlayer.this);
        }
    });
    mediaSession.setActive(true);

我还有一个使用此操作定义的BroadcastReceiver

<action android:name="android.intent.action.MEDIA_BUTTON" />

这是我所有与MediaSession相关的代码。所以,现在,我只是试着从耳机上得到一个动作的通知。我在onReceive()的第一行有一个断点,我点击了耳机中的按钮,但什么也没有发生。如果我长时间点击这个按钮,android就会进入收听语音指令的模式。

我还需要什么?

EN

回答 1

Stack Overflow用户

发布于 2015-11-12 00:15:21

首先,我对MediaSession进行了所有的调用,以便在UI线程上运行,然后我添加了来自谷歌培训的代码:

代码语言:javascript
复制
AudioManager am = mContext.getSystemService(Context.AUDIO_SERVICE);
...

// Start listening for button presses
am.registerMediaButtonEventReceiver(RemoteControlReceiver);
...

// Stop listening for button presses
am.unregisterMediaButtonEventReceiver(RemoteControlReceiver);

http://developer.android.com/training/managing-audio/volume-playback.html#PlaybackControls

我看到了在这个答案中定义的回调:How to use the new MediaSession class to receive media button presses on Android 5.x?

顺便说一下,它是在MediaSession.Callback上捕获的,而不是在BroadcastReceiver中捕获的。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33596223

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档