Rom*_*iel 6 android remote-control
我正在构建一个流媒体Android应用程序,我正在尝试集成一个远程控制客户端(例如,从ICS +上的锁定屏幕获得一个控件).
为此,我在启动流媒体服务时这样做:
int result = audioManager.requestAudioFocus(this, AudioManager.STREAM_MUSIC, AudioManager.AUDIOFOCUS_GAIN);
if (result != AudioManager.AUDIOFOCUS_REQUEST_GRANTED) {
stopSelf();
}
mediaButtonReceiverComponent = new ComponentName(this, RemoteControlReceiver.class);
audioManager.registerMediaButtonEventReceiver(mediaButtonReceiverComponent);
if (remoteControlClientCompat == null) {
final Intent mediaButtonIntent = new Intent(Intent.ACTION_MEDIA_BUTTON);
mediaButtonIntent.setComponent(mediaButtonReceiverComponent);
remoteControlClientCompat = new RemoteControlClientCompat(
PendingIntent.getBroadcast(
getApplicationContext(),
0,
mediaButtonIntent,
PendingIntent.FLAG_UPDATE_CURRENT
)
);
RemoteControlHelper.registerRemoteControlClient(audioManager, remoteControlClientCompat);
}
final int flags = RemoteControlClient.FLAG_KEY_MEDIA_STOP;
remoteControlClientCompat.setTransportControlFlags(flags);
Run Code Online (Sandbox Code Playgroud)
remoteControlClientCompat它只是样本中RemoteControlClientCompat的一个实例.
然后在流媒体中我正在更新元数据.一切正常,甚至控件都发送到我的RemoteControlReceiver.数据和图像在锁定屏幕上很好地显示.
从我的应用程序停止流式传输会破坏锁定屏幕的东西但是当我试图从小部件本身(通过按下停止按钮)销毁它时,它正在做一些奇怪的事情.按停止按钮使广播接收器停止我的流媒体服务.然后在服务的onDestroy()方法中,我这样做:
RemoteControlHelper.unregisterRemoteControlClient(audioManager, remoteControlClientCompat);
audioManager.unregisterMediaButtonEventReceiver(mediaButtonReceiverComponent);
audioManager.abandonAudioFocus(this);
Run Code Online (Sandbox Code Playgroud)
一旦audioManager.unregisterMediaButtonEventReceiver(mediaButtonReceiverComponent);调用,小部件就会闪烁.我试过评论这条线,然后眨眼就发生了audioManager.abandonAudioFocus(this);.在服务停止时评论其他行也会使其闪烁.
我注意到当我从通知中停止流式传输时也会发生这种情况.
我究竟做错了什么?我试过改变这个调用的顺序,但我无法解决它.我注意到Spotify在几个版本之前有完全相同的问题.我想知道他们是如何解决的......
好吧,我修好了。这只是因为当我们放弃音频焦点时 RemoteControlClient 无法播放。所以我只需要在销毁任何东西之前调用它:
remoteControlClientCompat.setPlaybackState(RemoteControlClient.PLAYSTATE_PAUSED);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1136 次 |
| 最近记录: |