Возможность приложения kivy приостанавливать видео, звук и т. д. в других приложениях (например, приостанавливать видео Python

Программы на Python
Anonymous
Возможность приложения kivy приостанавливать видео, звук и т. д. в других приложениях (например, приостанавливать видео

Сообщение Anonymous »

Мой вопрос: как добавить в свой код что-то, что будет приостанавливать видео в других приложениях (например, приостанавливать видео в TikTok, Facebook и т. д.), когда мое приложение «всплывает» в нижней половине телефона человека? экране (поэтому видео не воспроизводится, пока они читают мое всплывающее окно)?
Справочная информация:
В настоящее время я пытаюсь разработать приложение kivy с помощью Python, которое «всплывает» на вашем телефоне через определенное время и задает вам вопрос. Я хочу, чтобы мое приложение могло приостанавливать все, что вы в данный момент делали/работали, прежде чем мое приложение появится, и иметь возможность возобновить его, когда «всплывающее окно» исчезнет. Мое приложение будет занимать только нижнюю половину экрана телефона, поэтому я все равно хочу, чтобы приложение, в котором пользователь работал (например, TikTok или что-то еще) ранее, отображалось в верхней половине, только со всем звуком и видео, приостановленными. Я не хочу, чтобы пользователь выходил из любого приложения, в котором он был, когда появляется мое всплывающее окно.
Я пытался изучить эту тему, но ничего не нашел. Я также не являюсь экспертом в программировании, поэтому на самом деле я ничего не знаю о доступе приложений к другим приложениям, но мне сказали, что это может быть законно / на телефонах есть какое-то программное обеспечение и тому подобное, которое блокирует доступ приложений к другим приложениям, но я если честно, не особо разбираюсь в этом.
Вот мой код, если он вам нужен:
файл .py:

Код: Выделить всё

from kivy.app import App
from kivy.properties import StringProperty, NumericProperty
from kivymd.app import MDApp
from kivy.uix.screenmanager import ScreenManager, Screen
from kivy.clock import Clock
from kivy.core.window import Window
from kivy.uix.image import Image
from kivy.core.audio import SoundLoader

Window.size = (300, 300)

x = 1
checktimeout = 0

class MainScreen(Screen):
answer = StringProperty("")
answerhint = StringProperty("")
answerhint = "Answer"
answer = ""

def on_enter(self):
global x
global checktimeout

if checktimeout == 0:

checktimeout += 1
Clock.schedule_once(self.timeout, 10)
else:
pass

if x == 1:
self.q_change = "I have keys but no locks. I have space but no room. You can enter, but you can't go outside. What am I?"
self.manager.get_screen('main').ids.questions.text = self.q_change
self.answer = 'Keyboard'

elif x == 2:
self.q_change = "If you drop me, I’m sure to crack, but smile at me and I’ll smile back.  What am I?"
self.manager.get_screen('main').ids.questions.text = self.q_change
self.answer = "Mirror"

else:
self.q_change = "What has hands and a face, but can’t hold anything or smile?"
self.manager.get_screen('main').ids.questions.text = self.q_change
self.answer = "Clock"
x = 0

def resetText(self):
global x

if self.manager.get_screen('main').ids.answerInput.text == self.answer:
App.get_running_app().root.current = 'correct'
self.manager.get_screen('main').ids.answerInput.text = ""
x += 1
self.stoptimeout()

else:
App.get_running_app().root.current = 'retry'
self.manager.get_screen('main').ids.answerInput.text = ""

def stoptimeout(self):
Clock.unschedule(self.timeout)
global checktimeout
checktimeout = 0

def timeout2(self, dt):
global checktimeout
checktimeout = 0
App.get_running_app().root.current = "sound"

def timeout(self, dt):
self.manager.get_screen('main').ids.answerInput.text = ""
global x
x += 1
Window.hide()
Clock.schedule_once(self.timeout2, 2)

class CorrectScreen(Screen):
pass

sound = 1
class PlaySoundScreen(Screen, Image):
def on_enter(self):
Clock.schedule_once(self.soundshow, 1)

def soundshow(self, dt):
global sound

if sound == 1:
self.sound = SoundLoader.load('sound/stressrelief.mp3')
sound += 1

elif sound == 2:
self.sound = SoundLoader.load('sound/pianomusic.mp3')
sound += 1

elif sound == 3:
self.sound = SoundLoader.load('sound/nicebeats.mp3')
sound = 1

Window.show()
if self.sound:
self.sound.play()
Clock.schedule_once(self.stopsound, 10)

def stopsound(self, dt):
Window.hide()
self.sound.stop()
Clock.schedule_once(self.startS, 3)

def startS(self, dt):
App.get_running_app().root.current = 'findhiddenobject'

Findobject = 1
class FindObjectScreen(Screen):
x_position = NumericProperty()
y_position = NumericProperty()
image_source = StringProperty("")
change_label = StringProperty("")
def on_enter(self):
global Findobject

if Findobject==1:
self.x_position = 0.024
self.y_position = 0.35
self.image_source = "findobject/findobject.jpg"
self.change_label = "Find the Easter Egg!"
Findobject += 1

elif Findobject==2:
self.x_position = 0.7
self.y_position = 0.23
self.image_source = "findobject/Spot-the-chick.jpg"
self.change_label = "Find the Chick!"
Findobject += 1

elif Findobject==3:
self.x_position = 0.75
self.y_position = 0.38
self.image_source = "findobject/find-the-ring.jpg"
self.change_label = "Find the Ring!"
Findobject = 1
Window.show()
Clock.schedule_once(self.timeoutObject, 10)

def timeoutObject(self, dt):
Window.hide()
Clock.schedule_once(self.timeoutObject2, 2)

def timeoutObject2(self, dt):
App.get_running_app().root.current = "main"
Clock.schedule_once(self.show, 1)

def show(self, dt):
Window.show()

def stoptimeout(self):
Clock.unschedule(self.timeoutObject)

class WellDoneScreen(Screen):

def wait(self):
Window.hide()
App.get_running_app().root.current = 'main'
Clock.schedule_once(self.showMain, 3)

def showMain(self,  dt):
Window.show()

class TryAgainScreen(Screen):
pass

class ScreenManager(ScreenManager):
pass

def info_button(self):
self.ids.info_button.text = u"⌫"
self.ids.info_button.font_name = r"C:\Users\rosie\Downloads\arial-unicode-ms (2).ttf"

class DemoApp(MDApp):
callFunc = MainScreen()

def build(self):
Window.borderless = True
self.screen_manager = ScreenManager()
sm = ScreenManager()
sm.add_widget(MainScreen(name="main"))
sm.add_widget(PlaySoundScreen(name="sound"))
sm.add_widget(FindObjectScreen(name="findhiddenobject"))
sm.add_widget(TryAgainScreen(name="retry"))
sm.add_widget(CorrectScreen(name="correct"))
sm.add_widget(WellDoneScreen(name="welldone"))
return sm

def again2(self, dt):
Window.show()

def backtomain(self):
Window.hide()
Clock.schedule_once(self.appear, 3)

def appear(self):
Window.show()

def again(self):
Window.hide()
Clock.schedule_once(self.again2, 3)

if __name__ == '__main__':
DemoApp().run()
.kv-файл:

Код: Выделить всё

:
name: "main"
id: mainS
questions:questions

Label:
id: questions
background_color: (250/255.0, 218/255.0, 94/255, 1)
text: "HI"
font_name: "Comic"
padding: dp(10), dp(5), dp(5), dp(5)
text_size: root.width, root.height
valign: 'top'
canvas.before:
Color:
rgba: self.background_color
Rectangle:
size: self.size
pos: self.pos

#:set s 0.5
MDTextField:
id: answerInput
mode: "round"
pos_hint: {'x': 0.34, 'y': 0.3}
size_hint: (0.35, 0.2)
background_color: (1, 1 , 1, 1)
multiline: False
hint_text: root.answerhint
text: ""
font_name: "Comic"

#: set r 0.75
MDFlatButton:
id: info_button
font_name:'arial-unicode-ms.ttf'
text: "✓"
theme_text_color: "Custom"
text_color: "white"
background_normal: ''
pos_hint: {'x': r, 'y': r-0.7}
padding: dp(5), dp(5), dp(5), dp(5)
on_release:
root.resetText()
root.manager.transition.direction = "left"

:
name: "sound"
id: soundS
GridLayout:
cols: 1
padding: 55, 10, 10, 55
Label:
background_color: (250/255.0, 218/255.0, 94/255, 1)
text: ""
text_size: 450, 890
canvas.before:
Color:
rgba: self.background_color
Rectangle:
size: (480, 450)
pos: (0, 0)

Image:
source: "imagesagain/sounfimagew.png"
allow_stretch: True
keep_ratio: False
size_hint: (None, None)
height: 350
width: 330

:
name: "findhiddenobject"
id: findobjectS
GridLayout:
cols: 1
Image:
source: root.image_source
allow_stretch: True
keep_ratio: False
size_hint: root.width, root.height-100

Label:
text: root.change_label
text_size: 450, 890
valign: "top"
halign: "left"
padding: dp(5), dp(5), dp(5), dp(5)
background_color: (250/255.0, 218/255.0, 94/255, 1)
canvas.before:
Color:
rgba: self.background_color
Rectangle:
size: (480, 40)
pos: (0, 410)

MDFlatButton:
size_hint: (None, 0.1)
width: 50
pos_hint: {'x': root.x_position, 'y': root.y_position}
background_color: (0, 0, 0, 0)
background_normal:  ''
on_release:
root.stoptimeout()
app.root.current = 'welldone'
root.manager.transition.direction = "left"

:
name: "welldone"
id: welldoneS
Button:
background_normal: ''
background_color: (176/255.0, 156/255.0, 217/255, 1)
font_size: 42
text: "Well done!"
font_name: "Comic"
on_release:
root.wait()

:
name: "correct"
id: correctS
Button:
background_normal: ''
background_color: (102/255.0, 255/255.0, 0, 1)
font_size: 42
text_font: "Comic"
text: "Correct!"
on_release:
app.again()
app.root.current = 'sound'

:
name: "retry"
id: retryS
Button:
text: "Try again!"
background_normal: ''
background_color: (216/255.0), (225/255.0), (248/255.0), 1
on_release:
app.root.current = "main"
root.manager.transition.direction = "right"
Коротко говоря, возможно ли на самом деле заставить мое приложение kivy приостанавливать TikTok, Facebook и подобные приложения? И если да, то какой для этого код?
Любая помощь приветствуется, и я прошу прощения, если что-то неясно. Как я уже сказал, я не самый лучший в программировании, но постараюсь прояснить все, что не имеет смысла.
А также, если невозможно приостановить работу других приложений , есть ли какой-нибудь другой способ, чтобы мое приложение «всплывало», чтобы пользователь мог возобновить просмотр видео, которое он смотрел на любой платформе, после того, как мое всплывающее окно исчезнет? Еще раз спасибо!

Подробнее здесь: https://stackoverflow.com/questions/786 ... other-appl

Вернуться в «Python»