astrXbian/.install/.kodi/addons/plugin.video.youtube/resources/lib/youtube_plugin/kodion/impl/xbmc/xbmc_player.py

54 lines
1.6 KiB
Python
Raw Normal View History

2020-12-17 21:52:17 +01:00
# -*- coding: utf-8 -*-
"""
Copyright (C) 2014-2016 bromix (plugin.video.youtube)
Copyright (C) 2016-2018 plugin.video.youtube
SPDX-License-Identifier: GPL-2.0-only
See LICENSES/GPL-2.0-only for more information.
"""
import xbmc
from ..abstract_player import AbstractPlayer
class XbmcPlayer(AbstractPlayer):
def __init__(self, player_type, context):
AbstractPlayer.__init__(self)
self._player_type = player_type
if player_type == 'audio':
self._player_type = 'music'
self._context = context
def play(self, playlist_index=-1):
"""
We call the player in this way, because 'Player.play(...)' will call the addon again while the instance is
running. This is somehow shitty, because we couldn't release any resources and in our case we couldn't release
the cache. So this is the solution to prevent a locked database (sqlite).
"""
self._context.execute('Playlist.PlayOffset(%s,%d)' % (self._player_type, playlist_index))
"""
playlist = None
if self._player_type == 'video':
playlist = xbmc.PlayList(xbmc.PLAYLIST_VIDEO)
elif self._player_type == 'music':
playlist = xbmc.PlayList(xbmc.PLAYLIST_MUSIC)
if playlist_index >= 0:
xbmc.Player().play(item=playlist, startpos=playlist_index)
else:
xbmc.Player().play(item=playlist)
"""
def stop(self):
xbmc.Player().stop()
def pause(self):
xbmc.Player().pause()
def is_playing(self):
return xbmc.Player().isPlaying()