尝试实现RemoteControlClient,但仍然没有获得锁屏控件

 切尔小妹_288 发布于 2023-02-08 10:27

我已经浏览了SDK(RandomMusicPlayer)提供的RemoteControlClient示例程序.但是,我不能为我的生活弄清楚如何使用我自己的音乐播放器获得锁屏控制RemoteControlClient.这就是我的音乐播放器服务:

//Request audio focus for playback
int result = audioManager.requestAudioFocus(audioFocusChangeListener,
                                            AudioManager.STREAM_MUSIC,
                                            AudioManager.AUDIOFOCUS_GAIN);

//Check if audio focus was granted. If not, stop the service.
if (result!=AudioManager.AUDIOFOCUS_REQUEST_GRANTED) {
    //Stop the service.
    stopSelf();
    Toast.makeText(mContext, R.string.close_other_audio_apps, Toast.LENGTH_LONG).show();
}

ComponentName remoteControlsReceiver = new ComponentName(getPackageName(),      
                                         HeadsetButtonsReceiver.class.getName());

if (mRemoteControlClientCompat == null) {
   Intent remoteControlIntent = new Intent(Intent.ACTION_MEDIA_BUTTON);
   remoteControlIntent.setComponent(remoteControlsReceiver);

   mRemoteControlClientCompat = new RemoteControlClientCompat(PendingIntent.getBroadcast(this, 0, remoteControlIntent, 0));
   RemoteControlHelper.registerRemoteControlClient(audioManager, mRemoteControlClientCompat);
   audioManager.registerMediaButtonEventReceiver(remoteControlsReceiver);
}

这基本上就是SDK示例所做的(据我所知).我已经确认我的应用程序能够获得音频焦点.我完成了我的作业,并且知道需要音频专注才能使用.我到底错过了什么?任何指向正确方向的人都非常感激.:)

1 个回答
  • 弄清楚了.我最初正确地获得了AudioFocus,但是我的代码中存在一个缺陷,导致它在几秒钟后丢失了AudioFocus.这导致锁屏控件无法显示.

    最重要的是,如果你看不到你的控件,看起来你的代码设置正确,请确保你不会无意中abandonFocus(...)过早地打电话.这就是给我带来问题的原因.

    2023-02-08 10:29 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有