как включить и выключить камеру при нажатии на кнопку в киве? - PullRequest
0 голосов
/ 02 ноября 2019

Я занимаюсь разработкой приложения, в какой-то части мне нужно на камеру, а в какой-то части мне нужно, чтобы оно было отключено. Как включить и выключить камеру при нажатии кнопки в kivy?

Как я могу использовать камеру Kivy (Python) Я изменил режим воспроизведения камеры = True / False, но он не работал. Он не полностью выключил камеру, он не обновляет буферизацию нового изображения, но вспышка все еще включена, поэтому поверьте, что камера не полностью, но она перестает делать только новые снимки. Я считаю, что cam.stop () и cam.start () должны работать. согласно документации. Поэтому я попробовал этот способ Документация ядра Kivy

(my_camera.py)

from kivy.app import App
from kivy.uix.boxlayout import BoxLayout
import time
from kivy.uix.camera import Camera
from kivy.uix.button import Button

# creating camera object
cam = Camera(play=True, resolution=(640,480), index=0)

class CameraClick(BoxLayout):

    def __init__ (self,**kwargs):   # creating objects which shown on screen and adding then on screen
        super (CameraClick, self).__init__(**kwargs)

        my_box1 = BoxLayout(orientation='vertical')
        btn_on = Button(text="On")
        btn_off = Button(text='Off')
        btn_capture = Button(text='Capture')
        btn_on.bind(on_press=self.cam_on)
        btn_off.bind(on_press=self.cam_off)
        btn_capture.bind(on_press=self.capture)
        # my_box1.add_widget(my_label1)
        my_box1.add_widget(cam)
        my_box1.add_widget(btn_on)
        my_box1.add_widget(btn_capture)
        my_box1.add_widget(btn_off)
        self.add_widget(my_box1)

    def capture(self, args):
        '''
        Function to capture the images and give them the names
        according to their captured time and date.
        '''
        # camera = self.ids['camera']
        timestr = time.strftime("%Y%m%d_%H%M%S")
        cam.export_to_png("IMG_{}.png".format(timestr))
        print("Captured")

    def cam_on(self, *args):
        global cam
        # cam.play=True
        cam.start()

    def cam_off(self, *args):
        global cam
        # cam.play=False
        cam.stop()

class TestCamera(App):
    def build(self):
        return CameraClick()

TestCamera().run()

Когда я запускаю программу, ошибка, показанная в командной строке.

File "`my_camera.py`", line 63, in cam_off
    cam.stop()
AttributeError: '**Camera**' object has no attribute '**stop**'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...