Send MEDIA_ANNOUNCE flag to ESPHome media_player (#116993)

This commit is contained in:
Mischa Siekmann 2024-05-22 23:47:34 +02:00 committed by GitHub
parent eb76386c68
commit ad69a23fda
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
2 changed files with 8 additions and 4 deletions

View file

@ -14,6 +14,7 @@ from aioesphomeapi import (
from homeassistant.components import media_source
from homeassistant.components.media_player import (
ATTR_MEDIA_ANNOUNCE,
BrowseMedia,
MediaPlayerDeviceClass,
MediaPlayerEntity,
@ -77,6 +78,7 @@ class EsphomeMediaPlayer(
| MediaPlayerEntityFeature.STOP
| MediaPlayerEntityFeature.VOLUME_SET
| MediaPlayerEntityFeature.VOLUME_MUTE
| MediaPlayerEntityFeature.MEDIA_ANNOUNCE
)
if self._static_info.supports_pause:
flags |= MediaPlayerEntityFeature.PAUSE | MediaPlayerEntityFeature.PLAY
@ -112,10 +114,10 @@ class EsphomeMediaPlayer(
media_id = sourced_media.url
media_id = async_process_play_media_url(self.hass, media_id)
announcement = kwargs.get(ATTR_MEDIA_ANNOUNCE)
self._client.media_player_command(
self._key,
media_url=media_id,
self._key, media_url=media_id, announcement=announcement
)
async def async_browse_media(

View file

@ -13,6 +13,7 @@ import pytest
from homeassistant.components import media_source
from homeassistant.components.media_player import (
ATTR_MEDIA_ANNOUNCE,
ATTR_MEDIA_CONTENT_ID,
ATTR_MEDIA_CONTENT_TYPE,
ATTR_MEDIA_VOLUME_LEVEL,
@ -247,7 +248,7 @@ async def test_media_player_entity_with_source(
)
mock_client.media_player_command.assert_has_calls(
[call(1, media_url="http://www.example.com/xy.mp3")]
[call(1, media_url="http://www.example.com/xy.mp3", announcement=None)]
)
client = await hass_ws_client()
@ -268,10 +269,11 @@ async def test_media_player_entity_with_source(
ATTR_ENTITY_ID: "media_player.test_mymedia_player",
ATTR_MEDIA_CONTENT_TYPE: MediaType.URL,
ATTR_MEDIA_CONTENT_ID: "media-source://tts?message=hello",
ATTR_MEDIA_ANNOUNCE: True,
},
blocking=True,
)
mock_client.media_player_command.assert_has_calls(
[call(1, media_url="media-source://tts?message=hello")]
[call(1, media_url="media-source://tts?message=hello", announcement=True)]
)