该RemoteControlClient在ICS推出.这就是锁屏似乎与各种音乐播放器融为一体的方式.有关锁定屏幕上的Spotify示例,请参阅下面的屏幕截图.

可以从锁定屏幕以外的其他应用程序中集成所有玩家吗?
我发现文档在这个问题上缺乏一点点,但我认为如果可能的话,结果可能会很有趣.
编辑:
到目前为止的进展:没有.我发现的是IRemoteControlDisplay可能在其中有一部分,但我的Android/Java技能有点缺乏实际了解如何实现它并实现与锁定屏幕相同的功能.
在处理我的应用程序时,我实际上已经找到了如何实现自己的RemoteControlDisplay.
基本上,您扩展了IRemoteControlDisplay $ Stub,它将消息发送到特殊处理程序,此处理程序更新元数据和事物.然后通过调用AudioManager #registerRemoteControlDisplay()注册从IRemoteControlDisplay $ Stub扩展的自己的类.
然后通过调用AudioManager #unregisterRemoteControlDisplay()取消注册它.
它相当复杂,但我写了一篇关于如何做到这一点的文章.我已经在XDA上发布了它,请在这里查看:http: //forum.xda-developers.com/showthread.php?p = 45513199
我相信你可以做到这一点.但是,该方法将使用私有API(暗示它可能不适用于某些更高版本的Android OS).
我建议去下载Android源代码(http://source.android.com/)并检查目录/ frameworks/base/media/java/android/media
它有几个你感兴趣的文件:AudioManager.java
AudioService.java
IRemoteControlClient.aidl
IRemoteControlDisplay.aidl
音频管理器有公共方法,没有记录,称为registerRemoteControlDisplay.您应该能够通过反射访问它.
使用此接口,您可以注册实现IRemoteControlDisplay的对象(另一个未记录的接口),您应该能够通过此对象控制播放器.
小智 5
尝试这个
AudioManager audioManager = (AudioManager) getSystemService(Context.AUDIO_SERVICE);
audioManager.requestAudioFocus(this, AudioManager.STREAM_MUSIC,
AudioManager.AUDIOFOCUS_GAIN);
Bitmap AlbumArt=BitmapFactory.decodeResource(getResources(), R.drawable.alislahthumbmain);
mIslahReceiverComponent=new ComponentName(this,AlIslahReceiver.class.getName());
audioManager.registerMediaButtonEventReceiver(mIslahReceiverComponent);
Intent mediaButtonIntent=new Intent(Intent.ACTION_MEDIA_BUTTON);
mediaButtonIntent.setComponent(mIslahReceiverComponent);
PendingIntent mediaPendingIntent=PendingIntent.getBroadcast(getApplicationContext(),
0,mediaButtonIntent,0);
RemoteControlClient mRemoteControlClient=new RemoteControlClient(mediaPendingIntent);
mRemoteControlClient.editMetadata(true)
.putString(MediaMetadataRetriever.METADATA_KEY_TITLE,AlIslahApplication.getStreamTitle())
.putBitmap(100,AlbumArt)
.apply();
mRemoteControlClient.setPlaybackState(
RemoteControlClient.PLAYSTATE_PLAYING);
mRemoteControlClient.setTransportControlFlags(
RemoteControlClient.FLAG_KEY_MEDIA_PLAY_PAUSE|
RemoteControlClient.FLAG_KEY_MEDIA_STOP);
audioManager.registerRemoteControlClient(mRemoteControlClient);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
14933 次 |
| 最近记录: |