android media sessiom,如何使用新的MediaSession类在Android 5.x上接收...

我正在尝试使用新的MediaSession类接收媒体按钮按下,到目前为止,我一直没有成功.有没有人设法使用新课程接收它们?

我已成功创建MediaSession并使用它来更新远程显示器(车载娱乐系统)上的歌曲信息,但到目前为止我无法接收按钮,耳机控制和蓝牙耳机控件.

在我创建媒体会话后,我在用于播放音频的服务中执行以下操作:

_mediaSession = new MediaSession(getApplicationContext(), Global.PACKAGE_NAME + "." + TAG);

if (_mediaSession == null) {

_log.e(TAG, "initMediaSession: _mediaSession = null");

return;

}

_mediaSessionToken = _mediaSession.getSessionToken();

_mediaSession.setCallback(new Callback() {

public boolean onMediaButtonEvent(Intent mediaButtonIntent) {

_log.d(TAG, "onMediaButtonEvent called: " + mediaButtonIntent);

return false;

}

public void onPause() {

Log.d(TAG, "onPause called (media button pressed)");

super.onPause();

}

public void onPlay() {

Log.d(TAG, "onPlay called (media button pressed)");

super.onPlay();

}

public void onStop() {

Log.d(TAG, "onStop called (media button pressed)");

super.onStop();

}

});

_mediaSession.setFlags(MediaSession.FLAG_HANDLES_MEDIA_BUTTONS | MediaSession.FLAG_HANDLES_TRANSPORT_CONTROLS);

PlaybackState state = new PlaybackState.Builder()

.setActions(PlaybackState.ACTION_PLAY)

.setState(PlaybackState.STATE_STOPPED, PlaybackState.PLAYBACK_POSITION_UNKNOWN, SystemClock.elapsedRealtime())

.build();

_mediaSession.setPlaybackState(state);

_mediaSession.setActive(true);

但我仍然没有接到任何按钮按下.

有人有想法么?

谢谢

更新后更新

PlaybackState state = new PlaybackState.Builder()

.setActions(PlaybackState.ACTION_PLAY)

.setState(PlaybackState.STATE_STOPPED, PlaybackState.PLAYBACK_POSITION_UNKNOWN, SystemClock.elapsedRealtime())

.build();

PlaybackState state = new PlaybackState.Builder()

.setActions(PlaybackState.ACTION_PLAY)

.setState(PlaybackState.STATE_STOPPED, PlaybackState.PLAYBACK_POSITION_UNKNOWN, 0)

.build();

我现在通过onMediaButtonEvent()回调接收按钮按下通知(例如被通知按下KEYCODE_MEDIA_PAUSE)但是onPlay(),onPause()和onStop()从未被调用,任何想法为什么?

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值