當前位置: 首頁>>代碼示例>>Python>>正文


Python pychromecast.Chromecast方法代碼示例

本文整理匯總了Python中pychromecast.Chromecast方法的典型用法代碼示例。如果您正苦於以下問題:Python pychromecast.Chromecast方法的具體用法?Python pychromecast.Chromecast怎麽用?Python pychromecast.Chromecast使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在pychromecast的用法示例。


在下文中一共展示了pychromecast.Chromecast方法的15個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的Python代碼示例。

示例1: __init__

# 需要導入模塊: import pychromecast [as 別名]
# 或者: from pychromecast import Chromecast [as 別名]
def __init__(self, cast: pychromecast.Chromecast, app: App, prep: Optional[str] = None) -> None:
        self._cast = cast
        self.name = app.name
        self.info_type = None
        self.save_capability = None
        self.playlist_capability = None

        self._cast_listener = CastStatusListener(app.id, self._cast.app_id)
        self._cast.register_status_listener(self._cast_listener)

        try:
            self._cast.register_handler(self._controller)  # type: ignore
        except AttributeError:
            self._controller = self._cast.media_controller

        if prep == "app":
            self.prep_app()
        elif prep == "control":
            self.prep_control()
        elif prep == "info":
            self.prep_info() 
開發者ID:skorokithakis,項目名稱:catt,代碼行數:23,代碼來源:controllers.py

示例2: kill

# 需要導入模塊: import pychromecast [as 別名]
# 或者: from pychromecast import Chromecast [as 別名]
def kill(self, idle_only=False, force=False):
        """
        Kills current Chromecast session.

        :param idle_only: If set, session is only killed if the active Chromecast app
                          is idle. Use to avoid killing an active streaming session
                          when catt fails with certain invalid actions (such as trying
                          to cast an empty playlist).
        :type idle_only: bool
        :param force: If set, a dummy chromecast app is launched before killing the session.
                      This is a workaround for some devices that do not respond to this
                      command under certain circumstances.
        :type force: bool
        """

        if idle_only and not self._is_idle:
            return
        # The Google cloud app which is launched by the workaround is functionally
        # identical to the Default Media Receiver.
        if force:
            listener = CastStatusListener(CLOUD_APP_ID)
            self._cast.register_status_listener(listener)
            self._cast.start_app(CLOUD_APP_ID)
            listener.app_ready.wait()
        self._cast.quit_app() 
開發者ID:skorokithakis,項目名稱:catt,代碼行數:27,代碼來源:controllers.py

示例3: disconnect

# 需要導入模塊: import pychromecast [as 別名]
# 或者: from pychromecast import Chromecast [as 別名]
def disconnect(self, chromecast=None, timeout=None, blocking=True):
        """
        Disconnect a Chromecast and wait for it to terminate

        :param chromecast: Chromecast to cast to. If none is specified, then the default configured Chromecast
            will be used.
        :type chromecast: str

        :param timeout: Number of seconds to wait for disconnection (default: None: block until termination)
        :type timeout: float

        :param blocking: If set (default), then the code will wait until disconnection, otherwise it will return
            immediately.
        :type blocking: bool
        """

        cast = self.get_chromecast(chromecast)
        cast.disconnect(timeout=timeout, blocking=blocking) 
開發者ID:BlackLight,項目名稱:platypush,代碼行數:20,代碼來源:chromecast.py

示例4: set_volume

# 需要導入模塊: import pychromecast [as 別名]
# 或者: from pychromecast import Chromecast [as 別名]
def set_volume(self, volume, chromecast=None):
        """
        Set the Chromecast volume

        :param volume: Volume to be set, between 0 and 100
        :type volume: float

        :param chromecast: Chromecast to cast to. If none is specified, then the default configured Chromecast
            will be used.
        :type chromecast: str
        """

        chromecast = chromecast or self.chromecast
        cast = self.get_chromecast(chromecast)
        cast.set_volume(volume/100)
        cast.wait()
        status = self.status(chromecast=chromecast)
        status.output['volume'] = volume
        return status 
開發者ID:BlackLight,項目名稱:platypush,代碼行數:21,代碼來源:chromecast.py

示例5: volup

# 需要導入模塊: import pychromecast [as 別名]
# 或者: from pychromecast import Chromecast [as 別名]
def volup(self, chromecast=None, step=10):
        """
        Turn up the Chromecast volume by 10% or step.

        :param chromecast: Chromecast to cast to. If none is specified, then the default configured Chromecast
            will be used.
        :type chromecast: str

        :param step: Volume increment between 0 and 100 (default: 100%)
        :type step: float
        """

        chromecast = chromecast or self.chromecast
        cast = self.get_chromecast(chromecast)
        step /= 100
        cast.volume_up(min(step, 1))
        cast.wait()
        return self.status(chromecast=chromecast) 
開發者ID:BlackLight,項目名稱:platypush,代碼行數:20,代碼來源:chromecast.py

示例6: voldown

# 需要導入模塊: import pychromecast [as 別名]
# 或者: from pychromecast import Chromecast [as 別名]
def voldown(self, chromecast=None, step=10):
        """
        Turn down the Chromecast volume by 10% or step.

        :param chromecast: Chromecast to cast to. If none is specified, then the default configured Chromecast
            will be used.
        :type chromecast: str

        :param step: Volume decrement between 0 and 100 (default: 100%)
        :type step: float
        """

        chromecast = chromecast or self.chromecast
        cast = self.get_chromecast(chromecast)
        step /= 100
        cast.volume_down(max(step, 0))
        cast.wait()
        return self.status(chromecast=chromecast) 
開發者ID:BlackLight,項目名稱:platypush,代碼行數:20,代碼來源:chromecast.py

示例7: mute

# 需要導入模塊: import pychromecast [as 別名]
# 或者: from pychromecast import Chromecast [as 別名]
def mute(self, chromecast=None):
        """
        Toggle the mute status on the Chromecast

        :param chromecast: Chromecast to cast to. If none is specified, then the default configured Chromecast
            will be used.
        :type chromecast: str
        """

        chromecast = chromecast or self.chromecast
        cast = self.get_chromecast(chromecast)
        cast.set_volume_muted(not cast.status.volume_muted)
        cast.wait()
        return self.status(chromecast=chromecast)


# vim:sw=4:ts=4:et: 
開發者ID:BlackLight,項目名稱:platypush,代碼行數:19,代碼來源:chromecast.py

示例8: chromecast_play_video

# 需要導入模塊: import pychromecast [as 別名]
# 或者: from pychromecast import Chromecast [as 別名]
def chromecast_play_video(phrase):
    # Chromecast declarations
    # Do not rename/change "TV" its a variable
    TV = pychromecast.Chromecast("192.168.1.13") #Change ip to match the ip-address of your Chromecast
    mc = TV.media_controller
    idx1=phrase.find(custom_action_keyword['Dict']['Play'])
    idx2=phrase.find('on chromecast')
    query=phrase[idx1:idx2]
    query=query.replace(custom_action_keyword['Dict']['Play'],'',1)
    query=query.replace('on chromecast','',1)
    query=query.strip()
    youtubelinks=youtube_search(query)
    youtubeurl=youtubelinks[0]
    streams=youtube_stream_link(youtubeurl)
    videostream=streams[1]
    TV.wait()
    time.sleep(1)
    mc.play_media(videostream,'video/mp4') 
開發者ID:shivasiddharth,項目名稱:GassistPi,代碼行數:20,代碼來源:actions.py

示例9: get_chromecasts

# 需要導入模塊: import pychromecast [as 別名]
# 或者: from pychromecast import Chromecast [as 別名]
def get_chromecasts() -> List[pychromecast.Chromecast]:
    devices = pychromecast.get_chromecasts()
    devices.sort(key=lambda cc: cc.name)
    return devices 
開發者ID:skorokithakis,項目名稱:catt,代碼行數:6,代碼來源:controllers.py

示例10: get_chromecast

# 需要導入模塊: import pychromecast [as 別名]
# 或者: from pychromecast import Chromecast [as 別名]
def get_chromecast(device_name: Optional[str]) -> Optional[pychromecast.Chromecast]:
    devices = get_chromecasts()
    if not devices:
        return None

    if device_name:
        try:
            return next(cc for cc in devices if cc.name == device_name)
        except StopIteration:
            return None
    else:
        return devices[0] 
開發者ID:skorokithakis,項目名稱:catt,代碼行數:14,代碼來源:controllers.py

示例11: get_chromecast_with_ip

# 需要導入模塊: import pychromecast [as 別名]
# 或者: from pychromecast import Chromecast [as 別名]
def get_chromecast_with_ip(device_ip: str, port: int = DEFAULT_PORT) -> Optional[pychromecast.Chromecast]:
    try:
        # tries = 1 is necessary in order to stop pychromecast engaging
        # in a retry behaviour when ip is correct, but port is wrong.
        return pychromecast.Chromecast(device_ip, port=port, tries=1)
    except pychromecast.error.ChromecastConnectionError:
        return None 
開發者ID:skorokithakis,項目名稱:catt,代碼行數:9,代碼來源:controllers.py

示例12: get_cast

# 需要導入模塊: import pychromecast [as 別名]
# 或者: from pychromecast import Chromecast [as 別名]
def get_cast(device: Optional[str] = None) -> Tuple[pychromecast.Chromecast, CCInfo]:
    """
    Attempt to connect with requested device (or any device if none has been specified).

    :param device: Can be an ip-address or a name.
    :type device: str
    :returns: Chromecast object for use in a CastController,
              and CCInfo object for use in setup_cast and StreamInfo
    :rtype: (pychromecast.Chromecast, CCInfo)
    """

    cast = None

    if device and is_ipaddress(device):
        cast = get_chromecast_with_ip(device, DEFAULT_PORT)
        if not cast:
            msg = "No device found at {}".format(device)
            raise CastError(msg)
        cc_info = CCInfo(cast.host, cast.port, None, None, cast.cast_type)
    else:
        cache = Cache()
        maybe_cc_info = cache.get_data(device)

        if maybe_cc_info:
            # Get the Chromecast from the CCInfo IP/port.
            cast = get_chromecast_with_ip(maybe_cc_info.ip, maybe_cc_info.port)
            cc_info = maybe_cc_info

        if not cast:
            cast = get_chromecast(device)
            if not cast:
                msg = 'Specified device "{}" not found'.format(device) if device else "No devices found"
                raise CastError(msg)
            cc_info = CCInfo(cast.host, cast.port, cast.device.manufacturer, cast.model_name, cast.cast_type)
            cache.set_data(cast.name, cc_info)

    cast.wait()
    return (cast, cc_info) 
開發者ID:skorokithakis,項目名稱:catt,代碼行數:40,代碼來源:controllers.py

示例13: wait_for

# 需要導入模塊: import pychromecast [as 別名]
# 或者: from pychromecast import Chromecast [as 別名]
def wait_for(self, states: list, invert: bool = False, fail: bool = False, timeout: Optional[int] = None) -> bool:
        media_listener = MediaStatusListener(
            self._cast.media_controller.status.player_state, states, invert=invert, fail=fail
        )
        self._cast.media_controller.register_status_listener(media_listener)

        try:
            return media_listener.wait_for_states(timeout=timeout)
        except pychromecast.error.UnsupportedNamespace:
            raise CastError("Chromecast app operation was interrupted") 
開發者ID:skorokithakis,項目名稱:catt,代碼行數:12,代碼來源:controllers.py

示例14: __init__

# 需要導入模塊: import pychromecast [as 別名]
# 或者: from pychromecast import Chromecast [as 別名]
def __init__(self, chromecast=None, *args, **kwargs):
        """
        :param chromecast: Default Chromecast to cast to if no name is specified
        :type chromecast: str
        """

        super().__init__(*args, **kwargs)

        self._is_local = False
        self.chromecast = chromecast
        self.chromecasts = {}
        self._media_listeners = {} 
開發者ID:BlackLight,項目名稱:platypush,代碼行數:14,代碼來源:chromecast.py

示例15: get_chromecast

# 需要導入模塊: import pychromecast [as 別名]
# 或者: from pychromecast import Chromecast [as 別名]
def get_chromecast(self, chromecast=None, n_tries=2):
        import pychromecast
        if isinstance(chromecast, pychromecast.Chromecast):
            return chromecast

        if not chromecast:
            if not self.chromecast:
                raise RuntimeError('No Chromecast specified nor default Chromecast configured')
            chromecast = self.chromecast

        if chromecast not in self.chromecasts:
            casts = {}
            while n_tries > 0:
                n_tries -= 1
                casts.update({
                    cast.device.friendly_name: cast
                    for cast in pychromecast.get_chromecasts()
                })

                if chromecast in casts:
                    self.chromecasts.update(casts)
                    break

            if chromecast not in self.chromecasts:
                raise RuntimeError('Device {} not found'.format(chromecast))

        cast = self.chromecasts[chromecast]
        cast.wait()
        return cast 
開發者ID:BlackLight,項目名稱:platypush,代碼行數:31,代碼來源:chromecast.py


注:本文中的pychromecast.Chromecast方法示例由純淨天空整理自Github/MSDocs等開源代碼及文檔管理平台,相關代碼片段篩選自各路編程大神貢獻的開源項目,源碼版權歸原作者所有,傳播和使用請參考對應項目的License;未經允許,請勿轉載。