86 lines
2.8 KiB
Markdown
86 lines
2.8 KiB
Markdown
---
|
|
title: Media Player Entity
|
|
sidebar_label: Media Player
|
|
---
|
|
|
|
:::info Incomplete
|
|
This entry is incomplete. Contribution welcome.
|
|
:::
|
|
|
|
## Properties
|
|
|
|
:::tip
|
|
Properties should always only return information from memory and not do I/O (like network requests). Implement `update()` or `async_update()` to fetch data.
|
|
:::
|
|
|
|
| Name | Type | Default | Description
|
|
| ---- | ---- | ------- | -----------
|
|
| sound_mode | string | None | The current sound mode of the media player
|
|
| sound_mode_list | list | None | Dynamic list of available sound modes (set by platform, empty means sound mode not supported)
|
|
| source | string | None | The currently selected input source for the media player.
|
|
| source_list | list | None | The list of possible input sources for the media player. (This list should contain human readable names, suitible for frontend display)
|
|
| media_image_url | string | None | URL that represents the current image.
|
|
| media_image_remotely_accessible | boolean | False | Return `True` if property `media_image_url` is accessible outside of the home network.
|
|
| device_class | string | `None` | Type of media player.
|
|
|
|
## Methods
|
|
### Select sound mode
|
|
Optional. Switch the sound mode of the media player.
|
|
|
|
class MyMediaPlayer(MediaPlayerDevice):
|
|
# Implement one of these methods.
|
|
|
|
def select_sound_mode(self, sound_mode):
|
|
"""Switch the sound mode of the entity."""
|
|
|
|
def async_select_sound_mode(self, sound_mode):
|
|
"""Switch the sound mode of the entity."""
|
|
|
|
### Select source
|
|
Optional. Switch the selected input source for the media player.
|
|
|
|
class MyMediaPlayer(MediaPlayerDevice):
|
|
# Implement one of these methods.
|
|
|
|
def select_source(self, source):
|
|
"""Select input source."""
|
|
|
|
def async_select_source(self, source):
|
|
"""Select input source."""
|
|
|
|
### Mediatype
|
|
Required. Returns one of the defined constants from the below list that matches the mediatype
|
|
|
|
| CONST |
|
|
|-------|
|
|
|MEDIA_TYPE_MUSIC|
|
|
|MEDIA_TYPE_TVSHOW|
|
|
|MEDIA_TYPE_MOVIE|
|
|
|MEDIA_TYPE_VIDEO|
|
|
|MEDIA_TYPE_EPISODE|
|
|
|MEDIA_TYPE_CHANNEL|
|
|
|MEDIA_TYPE_PLAYLIST|
|
|
|MEDIA_TYPE_IMAGE|
|
|
|MEDIA_TYPE_URL|
|
|
|MEDIA_TYPE_GAME|
|
|
|MEDIA_TYPE_APP|
|
|
|
|
class MyMediaPlayer(MediaPlayerDevice):
|
|
# Implement the following method.
|
|
|
|
@property
|
|
def media_content_type(self):
|
|
"""Content type of current playing media."""
|
|
|
|
:::info
|
|
Using the integration name as the `media_content_type` is also acceptable within the `play_media` service if the integration provides handling which does not map to the defined constants.
|
|
:::
|
|
|
|
### Available device classes
|
|
Optional. What type of media device is this. It will possibly map to google device types.
|
|
|
|
| Value | Description
|
|
| ----- | -----------
|
|
| tv | Device is a television type device.
|
|
| speaker | Device is speakers or stereo type device.
|