我正在开发一个应用程序,通过蓝牙将互联网广播传输到我的汽车收音机。所有与声音相关的和远程控制的东西都有效,但我在将元数据发送到我的汽车收音机“Bolero Skoda some Alpine OEM”时遇到问题。当我发送元数据时,它被传输到收音机但未显示在显示屏中,但是如果我在车载收音机上按“|| PAUSE”并发送元数据它可以工作,我错过了什么?我猜我的一些问题是我正在使用一个永无止境的流,但必须有一个解决方法。
车载收音机正在运行 AVRCP 1.3。安卓 CM11 - 4.4.4
是的,对不起!这里是:
RemoteControlClient mRemoteControlClient = null;
protected void onCreate(Bundle savedInstanceState) {
...
PendingIntent pi = PendingIntent.getBroadcast(getApplicationContext(), 0, i, 0);
mRemoteControlClient = new RemoteControlClient(pi);
mAudioManager.registerRemoteControlClient(mRemoteControlClient);
int flags = RemoteControlClient.FLAG_KEY_MEDIA_PREVIOUS
| RemoteControlClient.FLAG_KEY_MEDIA_NEXT
| RemoteControlClient.FLAG_KEY_MEDIA_PLAY
| RemoteControlClient.FLAG_KEY_MEDIA_PAUSE
| RemoteControlClient.FLAG_KEY_MEDIA_PLAY_PAUSE
| RemoteControlClient.FLAG_KEY_MEDIA_STOP
| RemoteControlClient.FLAG_KEY_MEDIA_FAST_FORWARD
| RemoteControlClient.FLAG_KEY_MEDIA_REWIND;
mRemoteControlClient.setTransportControlFlags(flags);
mRemoteControlClient.setPlaybackState(RemoteControlClient.PLAYSTATE_PLAYING);
...
}
private void notifyChange()
{
Thread meta = new Thread(new Runnable()
{
public void run()
{
mRemoteControlClient
.editMetadata(true)
.putString(MediaMetadataRetriever.METADATA_KEY_TITLE, Get_Station())
.putString(MediaMetadataRetriever.METADATA_KEY_ARTIST, Get_Comment())
.putLong(MediaMetadataRetriever.METADATA_KEY_DURATION, 3000)
.apply();
}
});
meta.start();
try {
meta.join();
} catch (InterruptedException e) {
e.printStackTrace();
}
}