0

我正在开发一个应用程序,通过蓝牙将互联网广播传输到我的汽车收音机。所有与声音相关的和远程控制的东西都有效,但我在将元数据发送到我的汽车收音机“Bolero Skoda some Alpine OEM”时遇到问题。当我发送元数据时,它被传输到收音机但未显示在显示屏中,但是如果我在车载收音机上按“|| PAUSE”并发送元数据它可以工作,我错过了什么?我猜我的一些问题是我正在使用一个永无止境的流,但必须有一个解决方法。

车载收音机正在运行 AVRCP 1.3。安卓 CM11 - 4.4.4

4

1 回答 1

0

是的,对不起!这里是:

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();
    }
}
于 2016-04-24T20:54:56.767 回答