Essayez de lire la vidéo en utilisant la bibliothèque OpenCV avec Kivy et python-for-android Voici ma tentative:Lecture vidéo Utilisation de la bibliothèque OpenCV avec Kivy et python-for-android sur android
import os
import cv2
from kivy.app import App
from kivy.clock import Clock
from kivy.graphics.texture import Texture
from kivy.uix.boxlayout import BoxLayout
from kivy.uix.button import Button
from kivy.uix.image import Image
class KivyCamera(Image):
def __init__(self, capture=None, fps=0, **kwargs):
super(KivyCamera, self).__init__(**kwargs)
# self.capture = cv2.VideoCapture("/sdcard2/python-apk/2.mp4")
print "file path exist :" + str(os.path.exists("/sdcard2/python-apk/1.mkv"))
self.capture = cv2.VideoCapture("/sdcard2/python-apk/1.mkv")
Clock.schedule_interval(self.update, 1.0/fps)
def update(self, dt):
ret, frame = self.capture.read()
print str(os.listdir('/sdcard2/'))
if ret:
# convert it to texture
buf1 = cv2.flip(frame, 0)
buf = buf1.tostring()
image_texture = Texture.create(size=(frame.shape[1], frame.shape[0]), colorfmt='bgr')
image_texture.blit_buffer(buf, colorfmt='bgr', bufferfmt='ubyte')
# display image from the texture
self.texture = image_texture
class CamApp(App):
def build(self):
self.my_camera = KivyCamera(fps=30)
self.box = BoxLayout(orientation='vertical')
btn1 = Button(text="Hello")
self.box.add_widget(btn1)
# l = Label(text=cv2.__version__, font_size=150)
# self.box.add_widget(l)
self.box.add_widget(self.my_camera)
return self.box
def on_stop(self):
# without this, app will not exit even if the window is closed
# self.capture.release()
pass
def on_pause(self):
return True
if __name__ == '__main__':
CamApp().run()
et dans bulldozer .spec fichier
# (list) Source files to include (let empty to include all the files)
source.include_exts = py,png,jpg,kv,atlas,zip,mp4
# (list) Application requirements
requirements = plyer,kivy,opencv,numpy,pyjnius,ffmpeg, sqlite3, openssl
Je suis en train de lire la vidéo en utilisant OpenCV cv2.VideoCapture() méthode, au-dessus du programme de travail sur fin de bureau, mais quand je construis APK en utilisant bulldozer
et exécutez l'application sur le téléphone Android, je viens d'obtenir un écran blanc seulement. J'essaie de jouer .mp4
ou .mkv
format, mais dans les deux cas, je reçois un écran blanc. Qu'est-ce que je fais mal ou où est mon erreur ??
Voici mon fichier journal:
Log File
Question similaire:
This question also don't have any answer yet.
Downvote pour une raison quelconque ... s'il vous plaît dites-moi une raison quelconque. – Kallz
Y at-il une raison pour laquelle vous n'utilisez pas le widget vidéo et le fournisseur 'ffpyplayer'? –
@MikhailGerasimov pour un traitement ultérieur avec opencv – Kallz