Я использую этот плагин для трансляции интернет-радио с устройства на устройство Chromecast.
Обычно это так. работает. Но есть проблема: я не могу обновить информацию о треке, не перезапустив трансляцию. Например, закончился один трек — начался другой. В моем приложении есть эта информация, но я не знаю, как правильно передать ее в Chromecast.
Плагин, который я использую, поддерживает сообщения.
Я пробую следующий сценарий — получаю mediaSessionId — затем передаю следующее сообщение:
Код: Выделить всё
final message = {
'type': 'EDIT_TRACKS_INFO',
'mediaSessionId': _mediaSessionId,
'tracks': [
{
'trackId': 1,
'type': 'AUDIO',
'trackContentType': 'audio/mp3',
'name': 'New track',
'language': 'en',
'customData': {
'artist': 'New artist',
'albumName': 'New album',
'images': [
{
'url': _tmpImage,
},
],
},
},
],
};
_session!.sendMessage(CastSession.kNamespaceMedia, message);
Код: Выделить всё
receive message: {requestId: 9, type: INVALID_REQUEST, reason: INVALID_MEDIA_SESSION_ID}
Код: Выделить всё
final message = {
'type': 'QUEUE_GET_ITEM',
'itemId': itemId,
};
плагин поддерживает следующие константы - но я не могу найти в документации, как это сделать применяйте его правильно:
Код: Выделить всё
static const kNamespaceConnection = 'urn:x-cast:com.google.cast.tp.connection';
static const kNamespaceHeartbeat = 'urn:x-cast:com.google.cast.tp.heartbeat';
static const kNamespaceReceiver = 'urn:x-cast:com.google.cast.receiver';
static const kNamespaceDeviceauth = 'urn:x-cast:com.google.cast.tp.deviceauth';
static const kNamespaceMedia = 'urn:x-cast:com.google.cast.media';
Подробнее здесь: https://stackoverflow.com/questions/785 ... or-flutter
Мобильная версия