Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
30 changes: 30 additions & 0 deletions homeassistant/components/androidtv/media_player.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,6 @@
"""Support for functionality to interact with Android TV / Fire TV devices."""
import binascii
from datetime import datetime
import functools
import logging
import os
Expand Down Expand Up @@ -475,6 +477,34 @@ def unique_id(self):
"""Return the device unique id."""
return self._unique_id

async def async_get_media_image(self):
"""Fetch current playing image."""
if self.state in [STATE_OFF, None] or not self.available:
return None, None

media_data = await self.hass.async_add_executor_job(self.get_raw_media_data)
if media_data:
return media_data, "image/png"
return None, None

@adb_decorator()
def get_raw_media_data(self):
"""Raw base64 image data."""
try:
response = self.aftv.adb_shell("screencap -p | base64")
except UnicodeDecodeError:
return None

if isinstance(response, str) and response.strip():
return binascii.a2b_base64(response.strip().replace("\n", ""))

return None

@property
def media_image_hash(self):
"""Hash value for media image."""
return f"{datetime.now().timestamp()}"
Comment thread
i00 marked this conversation as resolved.

@adb_decorator()
def media_play(self):
"""Send play command."""
Expand Down