Closed fayfive closed 1 year ago
The issue seems fixed in the recently released python-for-android
and buildozer
versions, feel free to re-open the issue if it persists on your side.
Hello,
my-env:
Package Version
------------------ ---------
appdirs 1.4.4
buildozer 1.4.0
certifi 2022.6.15
charset-normalizer 2.1.0
colorama 0.4.5
Cython 0.29.30
distlib 0.3.5
docutils 0.19
ffmpeg 1.4
ffpyplayer 4.3.5
filelock 3.7.1
idna 3.3
importlib-metadata 4.12.0
Jinja2 3.1.2
Kivy 2.1.0
Kivy-Garden 0.1.5
MarkupSafe 2.1.1
numpy 1.23.1
pep517 0.6.0
pexpect 4.8.0
Pillow 9.2.0
pip 22.2
pkg_resources 0.0.0
platformdirs 2.5.2
ptyprocess 0.7.0
Pygments 2.12.0
python-for-android 2022.7.20
pytoml 0.1.21
requests 2.28.1
setuptools 44.0.0
sh 1.14.3
six 1.16.0
toml 0.10.2
urllib3 1.26.10
virtualenv 20.15.1
wheel 0.37.1
zipp 3.8.1
Problem:
@misl6 I am trying to connect a rtsp stream with kivy Android app. While trying on desktop with kivy.gstreamer, there is no problem. As opencv doesnt support for ffmpeg at android, i decided to try ffpyplayer.
07-24 22:17:31.040 17843 17893 I python : [INFO ] [VideoFFPy ] Using ffpyplayer 4.3.2 07-24 22:17:31.041 17843 17893 I python : [INFO ] [Video ] Provider: ffpyplayer(['video_ffmpeg'] ignored)
However, i got this error:
07-24 22:17:31.352 17843 17893 I python : [ERROR ] [Image ] Not found rtsp://[admin:ad...@192.168.1.2/1/1](http://admin:admin@192.168.1.2/1/1) ..... 07-24 22:17:31.361 17843 17899 I python : [ERROR ] [ffpyplayer ] rtsp://admin:ad...@192.168.1.2/1/1: Protocol not found
Logs:
07-24 22:17:29.650 17843 17893 I python : Initializing Python for Android
07-24 22:17:29.650 17843 17893 I python : Setting additional env vars from p4a_env_vars.txt
07-24 22:17:29.650 17843 17893 I python : Changing directory to the one provided by ANDROID_ARGUMENT
07-24 22:17:29.650 17843 17893 I python : /data/user/0/org.test.myapp/files/app
07-24 22:17:29.650 17843 17893 I python : Preparing to initialize python
07-24 22:17:29.650 17843 17893 I python : _python_bundle dir exists
07-24 22:17:29.650 17843 17893 I python : calculated paths to be...
07-24 22:17:29.650 17843 17893 I python : /data/user/0/org.test.myapp/files/app/_python_bundle/stdlib.zip:/data/user/0/org.test.myapp/files/app/_python_bundle/modules
07-24 22:17:29.651 17843 17893 I python : set wchar paths...
07-24 22:17:29.657 17843 17873 D mali_winsys: EGLint new_window_surface(egl_winsys_display *, void *, EGLSurface, EGLConfig, egl_winsys_surface **, EGLBoolean) returns 0x3000
07-24 22:17:29.667 604 660 I GRALLOC : getCallingPid=659, shrFd=10,fmt=0x1,intFmt=0x200000001,btStrd=4352,size=9691136,pid=604
07-24 22:17:29.667 604 660 I GRALLOC : yuv=2,w=1080,h=2188,Stride u=0 v=0,offset u=0 v=0
07-24 22:17:29.667 604 660 I GRALLOC : iova_size=9691136,conUsg=0xb00,proUsg=0xb00, strd=1088,[afbc]HdrStrd=1088 PyldStrd=69632 Scrmbl=2,ionhnd = 0
07-24 22:17:29.670 454 454 I hwservicemanager: getTransport: Cannot find entry android.hardware.graphics.mapper@3.0::IMapper/default in either framework or device manifest.
07-24 22:17:29.670 17843 17873 W Gralloc3: mapper 3.x is not supported
07-24 22:17:29.675 17843 17843 W SDLThread: type=1400 audit(0.0:4743335): avc: granted { execute } for pid=17843 path="/data/data/org.test.myapp/files/app/_python_bundle/modules/[zlib.cpython-39.so](http://zlib.cpython-39.so/)" dev="mmcblk0p71" ino=64709 scontext=u:r:untrusted_app:s0:c231,c256,c512,c768 tcontext=u:object_r:app_data_file:s0:c231,c256,c512,c768 tclass=file
07-24 22:17:29.701 17843 17873 E : APS:IFLoad:importExternalFunctions, search function createNewHwApsUtils failed, dlsym err:undefined symbol: createNewHwApsUtils
07-24 22:17:29.701 17843 17873 D : APS:importExternalFunctions OK
07-24 22:17:29.706 581 31095 I netd : trafficSwapActiveStatsMap() <14.09ms>
07-24 22:17:29.706 17843 17843 I HwViewRootImpl: removeInvalidNode jank list is null
07-24 22:17:29.712 17843 17893 I python : Initialized python
07-24 22:17:29.712 17843 17893 I python : AND: Init threads
07-24 22:17:29.712 17843 17893 I python : testing python print redirection
07-24 22:17:29.714 17843 17893 I python : Android path ['.', '/data/user/0/org.test.myapp/files/app/_python_bundle/stdlib.zip', '/data/user/0/org.test.myapp/files/app/_python_bundle/modules', '/data/user/0/org.test.myapp/files/app/_python_bundle/site-packages']
07-24 22:17:29.714 17843 17893 I python : os.environ is environ({'PATH': '/sbin:/system/sbin:/product/bin:/apex/com.android.runtime/bin:/system/bin:/system/xbin:/odm/bin:/vendor/bin:/vendor/xbin', 'ANDROID_BOOTLOGO': '1', 'ANDROID_ROOT': '/system', 'ANDROID_ASSETS': '/system/app', 'ANDROID_DATA': '/data', 'ANDROID_STORAGE': '/storage', 'ANDROID_RUNTIME_ROOT': '/apex/com.android.runtime', 'ANDROID_TZDATA_ROOT': '/apex/com.android.tzdata', 'EXTERNAL_STORAGE': '/sdcard', 'ASEC_MOUNTPOINT': '/mnt/asec', 'BOOTCLASSPATH': '/apex/com.android.runtime/javalib/core-oj.jar:/apex/com.android.runtime/javalib/core-libart.jar:/apex/com.android.runtime/javalib/okhttp.jar:/apex/com.android.runtime/javalib/bouncycastle.jar:/apex/com.android.runtime/javalib/apache-xml.jar:/system/framework/framework.jar:/system/framework/ext.jar:/system/framework/telephony-common.jar:/system/framework/voip-common.jar:/system/framework/ims-common.jar:/system/framework/android.test.base.jar:/system/framework/featurelayer-widget.jar:/system/framework/hwEmui.jar:/system/framework/hwPartBasicplatform.jar:/system/framework/hwTelephony-common.jar:/system/framework/hwPartTelephony.jar:/system/framework/hwPartTelephonyVSim.jar:/system/framework/hwPartTelephonyCust.jar:/system/framework/hwPartSecurity.jar:/system/framework/hwIms-common.jar:/system/framework/hwPartMedia.jar:/system/framework/hwPartConnectivity.jar:/system/framework/hwPartPowerOffice.jar:/system/framework/hwPartDeviceVirtualization.jar:/system/framework/hwframework.jar:/system/framework/com.huawei.nfc.jar:/system/framework/org.ifaa.android.manager.jar:/system/framework/hwperf.jar:/system/framework/hwaps.jar:/system/framework/hwcustEmui.jar:/system/framework/hwcustframework.jar:/system/framework/servicehost.jar:/system/framework/hwcustIms-common.jar:/system/framework/hwcustTelephony-common.jar:/system/framework/hwIAwareAL.jar:/apex/com.android.conscrypt/javalib/conscrypt.jar:/apex/com.android.media/javalib/updatable-media.jar', 'DEX2OATBOOTCLASSPATH': '/apex/com.android.runtime/javalib/core-oj.jar:/apex/com.android.runtime/javalib/core-libart.jar:/apex/com.android.runtime/javalib/okhttp.jar:/apex/com.android.runtime/javalib/bouncycastle.jar:/apex/com.android.runtime/javalib/apache-xml.jar:/system/framework/framework.jar:/system/framework/ext.jar:/system/framework/telephony-common.jar:/system/framework/voip-common.jar:/system/framework/ims-common.jar:/system/framework/android.test.base.jar:/system/framework/featurelayer-widget.jar:/system/framework/hwEmui.jar:/system/framework/hwPartBasicplatform.jar:/system/framework/hwTelephony-common.jar:/system/framework/hwPartTelephony.jar:/system/framework/hwPartTelephonyVSim.jar:/system/framework/hwPartTelephonyCust.jar:/system/framework/hwPartSecurity.jar:/system/framework/hwIms-common.jar:/system/framework/hwPartMedia.jar:/system/framework/hwPartConnectivity.jar:/system/framework/hwPartPowerOffice.jar:/system/framework/hwPartDeviceVirtualization.jar:/system/framework/hwframework.jar:/system/framework/com.huawei.nfc.jar:/system/framework/org.ifaa.android.manager.jar:/system/framework/hwperf.jar:/system/framework/hwaps.jar:/system/framework/hwcustEmui.jar:/system/framework/hwcustframework.jar:/system/framework/servicehost.jar:/system/framework/hwcustIms-common.jar:/system/framework/hwcustTelephony-common.jar:/system/framework/hwIAwareAL.jar', 'SYSTEMSERVERCLASSPATH': '/system/framework/services.jar:/system/framework/ethernet-service.jar:/system/framework/wifi-service.jar:/system/framework/com.android.location.provider.jar:/system/framework/hwServices.jar:/system/framework/hwWifi-service.jar:/system/framework/hwcustServices.jar:/system/framework/hwcustwifi-service.jar', 'DOWNLOAD_CACHE': '/data/cache', 'OEM_ROOT': '/hw_product/hw_oem/MAR-L21A', 'ODM_PRODUCT': '/odm/hw_odm/MAR-L21A', 'CUST_POLICY_DIRS': '/system/emui/base:/system/emui/oversea:/vendor/etc:/odm/etc:/odm/hw_odm/MAR-L21A:/hw_product/etc:/hw_product/region_comm/oversea:/preas/oversea:/hw_product/hw_oem/MAR-L21A:/preload/MAR-L21A/hw/eea:/cust/global:/cust/hw/eu:/cust/hw/eea:/hw_product/special_cust/MAR-L21A/h
07-24 22:17:29.714 17843 17893 I python : Android kivy bootstrap done. __name__ is __main__
07-24 22:17:29.714 17843 17893 I python : AND: Ran string
07-24 22:17:29.714 17843 17893 I python : Run user program, change dir and execute entrypoint
07-24 22:17:29.715 846 881 D AwareLog: iawared: WorkingsetProcessCommand subCmd = 351, userId=10231, pid=17843, org.test.myapp
07-24 22:17:29.715 846 881 D AwareLog: iawared: WorkingsetPause org.test.myapp
07-24 22:17:29.718 1284 1483 V WindowManager: removeIfPossible: Window{813e904 u0 Splash Screen org.test.myapp} callers=com.android.server.wm.WindowState.removeIfPossible:2260 com.android.server.wm.WindowManagerService.removeWindow:2027 com.android.server.wm.Session.remove:176 android.view.ViewRootImpl.dispatchDetachedFromWindow:4411 android.view.ViewRootImpl.doDie:7572
07-24 22:17:29.719 1284 1483 V WindowManager: Not removing Window{813e904 u0 Splash Screen org.test.myapp EXITING} due to exit animation
07-24 22:17:29.724 1284 1581 I WindowManager: New wallpaper target: null prevTarget: Window{df80fdc u0 com.huawei.android.launcher/com.huawei.android.launcher.drawer.DrawerLauncher}
07-24 22:17:29.726 1284 1480 I StatusBarDisable: setFlags what=0 which=1 pkg=Window{a2116f7 u0 org.test.myapp/org.kivy.android.PythonActivity}
07-24 22:17:29.729 581 31095 I netd : trafficSwapActiveStatsMap() <15.38ms>
07-24 22:17:29.732 872 980 W ScreemCommon: processEntry, not beta version or commercial log off
07-24 22:17:29.734 17843 17843 V SDL : onWindowFocusChanged(): true
07-24 22:17:29.743 17843 17843 W SDLThread: type=1400 audit(0.0:4743336): avc: granted { execute } for pid=17843 path="/data/data/org.test.myapp/files/app/_python_bundle/modules/_[heapq.cpython-39.so](http://heapq.cpython-39.so/)" dev="mmcblk0p71" ino=86016 scontext=u:r:untrusted_app:s0:c231,c256,c512,c768 tcontext=u:object_r:app_data_file:s0:c231,c256,c512,c768 tclass=file
07-24 22:17:29.747 659 730 E BufferQueueProducer: [com.huawei.android.launcher/com.huawei.android.launcher.drawer.DrawerLauncher#0]:1338: disconnect: not connected (req=1)
07-24 22:17:29.747 2138 2323 W libEGL : EGLNativeWindowType 0x726c44be90 disconnect failed
07-24 22:17:29.752 1284 1493 I ActivityTaskManager: Displayed org.test.myapp/org.kivy.android.PythonActivity: +417ms
07-24 22:17:29.753 872 980 D ScreemCommon: <LOGMGR> <complete_pm> [Entry]
07-24 22:17:29.764 32502 32502 E FullInputEventModel: onStartInput event aborted: xj1: could not obtain extracted text (class xj1)
07-24 22:17:29.764 604 660 I GRALLOC : getCallingPid=659, shrFd=10,fmt=0x1,intFmt=0x200000001,btStrd=4352,size=9691136,pid=604
07-24 22:17:29.764 604 660 I GRALLOC : yuv=2,w=1080,h=2188,Stride u=0 v=0,offset u=0 v=0
07-24 22:17:29.764 604 660 I GRALLOC : iova_size=9691136,conUsg=0xb00,proUsg=0xb00, strd=1088,[afbc]HdrStrd=1088 PyldStrd=69632 Scrmbl=2,ionhnd = 0
07-24 22:17:29.768 1284 17243 W AwareLog: AwareMem_Reclaim: generateCompressList procsGroups error!
07-24 22:17:29.770 1954 11304 D DollieActivityManagerAdapter: [UidStateChanged] uid:10075 uidState:6
07-24 22:17:29.770 1954 11304 E DollieAdapterService: notifyActivityState pkg:com.huawei.android.launcher/com.huawei.android.launcher.drawer.DrawerLauncher state:6 fg:false mUid:10075
07-24 22:17:29.773 846 881 I : HibSTrategy::HibStrategySwapCandidateProcessAdd packagename com.google.android.gsf
07-24 22:17:29.777 2138 2138 I Task : Task recycle id=3342 windowingMode=1 user=0 lastActiveTime=1824200479
07-24 22:17:29.778 1284 1394 D NotificationListeners: Removing active service ComponentInfo{com.huawei.android.launcher/com.huawei.android.launcher.notification.NotificationListener}
07-24 22:17:29.779 2138 2138 I HwLauncher: Launcher Icon:31 Widget:2 Folder:3 Icon in folder:24
07-24 22:17:29.792 1284 1394 V WindowManager: notifyAppStopped: AppWindowToken{f1d151c token=Token{e8dae8f ActivityRecord{c1549f0 u0 com.huawei.android.launcher/.drawer.DrawerLauncher t1}}}
07-24 22:17:29.792 1284 1394 E WindowManager: win=Window{df80fdc u0 com.huawei.android.launcher/com.huawei.android.launcher.drawer.DrawerLauncher} destroySurfaces: appStopped=true win.mWindowRemovalAllowed=false win.mRemoveOnExit=false
07-24 22:17:29.797 1954 16389 I BoosterSwitchP: notifyUidState do nothing
07-24 22:17:29.797 1954 16389 I DeepNoDisturbP: notifyUidState
07-24 22:17:29.797 1954 16389 I BrowserChrP: notifyUidState
07-24 22:17:29.798 1284 1621 D ConnectivityService: get Network state from cache, cacheBlock is 0
07-24 22:17:29.810 2097 12591 I PGServer: getTopFrontApp. calling pkg: android
07-24 22:17:29.822 1284 1483 V WindowManager: Exit animation finished in Window{813e904 u0 Splash Screen org.test.myapp EXITING}: remove=true
07-24 22:17:29.822 1284 1483 E WindowManager: win=Window{813e904 u0 Splash Screen org.test.myapp EXITING} destroySurfaces: appStopped=false win.mWindowRemovalAllowed=true win.mRemoveOnExit=true
07-24 22:17:29.819 17843 17843 W SDLThread: type=1400 audit(0.0:4743337): avc: granted { execute } for pid=17843 path="/data/data/org.test.myapp/files/app/_python_bundle/modules/[math.cpython-39.so](http://math.cpython-39.so/)" dev="mmcblk0p71" ino=69615 scontext=u:r:untrusted_app:s0:c231,c256,c512,c768 tcontext=u:object_r:app_data_file:s0:c231,c256,c512,c768 tclass=file
07-24 22:17:29.825 1284 1483 V WindowManager: postWindowRemoveCleanupLocked: Window{813e904 u0 Splash Screen org.test.myapp}
07-24 22:17:29.825 1284 1483 V WindowManager: Removing Window{813e904 u0 Splash Screen org.test.myapp} from AppWindowToken{b5e9840 token=Token{4cc77c3 ActivityRecord{f3822d4 u0 org.test.myapp/org.kivy.android.PythonActivity t3345}}}
07-24 22:17:29.823 17843 17843 W SDLThread: type=1400 audit(0.0:4743339): avc: granted { execute } for pid=17843 path="/data/data/org.test.myapp/files/app/_python_bundle/modules/_[random.cpython-39.so](http://random.cpython-39.so/)" dev="mmcblk0p71" ino=70007 scontext=u:r:untrusted_app:s0:c231,c256,c512,c768 tcontext=u:object_r:app_data_file:s0:c231,c256,c512,c768 tclass=file
07-24 22:17:29.843 17843 17843 W SDLThread: type=1400 audit(0.0:4743341): avc: granted { execute } for pid=17843 path="/data/data/org.test.myapp/files/app/_python_bundle/modules/_[queue.cpython-39.so](http://queue.cpython-39.so/)" dev="mmcblk0p71" ino=69924 scontext=u:r:untrusted_app:s0:c231,c256,c512,c768 tcontext=u:object_r:app_data_file:s0:c231,c256,c512,c768 tclass=file
07-24 22:17:29.872 846 3132 I : HiberManagerService::do_reclaim ok, pid=7223, reclaim_mode = hiber_anon
07-24 22:17:29.872 846 3132 I : getReclaimResult:reclaim_kb=2364, swap_kb=2364, swap_us=21838
07-24 22:17:29.872 846 3132 I : HibStrategy::HibStrategySwapCandidateProcessRemove packagename is com.google.android.gsf
07-24 22:17:29.872 846 3132 I : HiberManagerService::sendMessagetoHiberTask successful
07-24 22:17:29.887 17843 17893 I python : [INFO ] [Logger ] Record log in /data/user/0/org.test.myapp/files/app/.kivy/logs/kivy_22-07-24_1.txt
07-24 22:17:29.887 17843 17893 I python : [INFO ] [Kivy ] v2.1.0
07-24 22:17:29.888 17843 17893 I python : [INFO ] [Kivy ] Installed at "/data/user/0/org.test.myapp/files/app/_python_bundle/site-packages/kivy/__init__.pyc"
07-24 22:17:29.888 17843 17893 I python : [INFO ] [Python ] v3.9.9 (main, Jul 24 2022, 19:09:20)
07-24 22:17:29.888 17843 17893 I python : [Clang 12.0.8 (https://android.googlesource.com/toolchain/llvm-project c935d99d
07-24 22:17:29.888 17843 17893 I python : [INFO ] [Python ] Interpreter at ""
07-24 22:17:29.889 17843 17893 I python : [INFO ] [Logger ] Purge log fired. Processing...
07-24 22:17:29.889 17843 17893 I python : [INFO ] [Logger ] Purge finished!
07-24 22:17:29.890 846 881 I : HibSTrategy::HibStrategySwapCandidateProcessAdd packagename com.google.android.ims
07-24 22:17:29.930 2097 12591 I PGServer: getTopFrontApp. calling pkg: android
07-24 22:17:30.020 846 3132 I : HiberManagerService::do_reclaim ok, pid=10614, reclaim_mode = hiber_anon
07-24 22:17:30.020 846 3132 I : getReclaimResult:reclaim_kb=7032, swap_kb=7032, swap_us=49773
07-24 22:17:30.020 846 3132 I : HibStrategy::HibStrategySwapCandidateProcessRemove packagename is com.google.android.ims
07-24 22:17:30.020 846 3132 I : HiberManagerService::sendMessagetoHiberTask successful
07-24 22:17:30.153 581 31095 I netd : trafficSwapActiveStatsMap() <23.99ms>
07-24 22:17:30.515 1284 1649 I TrafficMonitor: expired arrive. level:-1
07-24 22:17:30.515 1284 1649 I TrafficMonitor: during_ms:2005,period_ms:2000
07-24 22:17:30.516 1284 1649 I TrafficMonitor: count:78,rx_sum:0,tx_sum:0,rxBytes:0,during_ms:2005,rx_speed:0.0,tx_speed:0.0,rto:0.0
07-24 22:17:30.537 581 31095 I netd : trafficSwapActiveStatsMap() <27.44ms>
07-24 22:17:30.564 1954 2194 I HwPacketFilterBypass: isBypassAllowed not allowed reason: DATA_OFF
07-24 22:17:30.565 1954 2194 I HwPacketFilterBypass: kernelAddTrackUid uid:10231 allowed:false
07-24 22:17:30.624 17843 17893 I python : [INFO ] [Factory ] 189 symbols loaded
07-24 22:17:30.816 846 3952 I Pged-IPgedBinderService: ****action is 2, pid num is 3***
07-24 22:17:30.816 846 3952 I Pged-Freezer: thawPids
07-24 22:17:30.817 2097 2483 D PgedBinderAdapter: unF_Z ok, pid: [9634, 7881]
07-24 22:17:30.851 17843 17843 W SDLThread: type=1400 audit(0.0:4743360): avc: granted { execute } for pid=17843 path="/data/data/org.test.myapp/files/app/_python_bundle/site-packages/kivy/graphics/instructions.so" dev="mmcblk0p71" ino=27981 scontext=u:r:untrusted_app:s0:c231,c256,c512,c768 tcontext=u:object_r:app_data_file:s0:c231,c256,c512,c768 tclass=file
07-24 22:17:30.855 17843 17843 W SDLThread: type=1400 audit(0.0:4743361): avc: granted { execute } for pid=17843 path="/data/data/org.test.myapp/files/app/_python_bundle/site-packages/kivy/graphics/buffer.so" dev="mmcblk0p71" ino=80052 scontext=u:r:untrusted_app:s0:c231,c256,c512,c768 tcontext=u:object_r:app_data_file:s0:c231,c256,c512,c768 tclass=file
07-24 22:17:30.859 17843 17843 W SDLThread: type=1400 audit(0.0:4743364): avc: granted { execute } for pid=17843 path="/data/data/org.test.myapp/files/app/_python_bundle/site-packages/kivy/graphics/vbo.so" dev="mmcblk0p71" ino=28044 scontext=u:r:untrusted_app:s0:c231,c256,c512,c768 tcontext=u:object_r:app_data_file:s0:c231,c256,c512,c768 tclass=file
07-24 22:17:30.908 17843 17893 I python : [INFO ] [ImageLoaderFFPy] Using ffpyplayer 4.3.2
07-24 22:17:30.909 17843 17893 I python : [INFO ] [Image ] Providers: img_tex, img_dds, img_sdl2, img_ffpyplayer (img_pil ignored)
07-24 22:17:31.026 17843 17893 I python : [INFO ] [Camera ] Provider: android
07-24 22:17:31.040 17843 17893 I python : [INFO ] [VideoFFPy ] Using ffpyplayer 4.3.2
07-24 22:17:31.041 17843 17893 I python : [INFO ] [Video ] Provider: ffpyplayer(['video_ffmpeg'] ignored)
07-24 22:17:31.053 17843 17893 I python : [INFO ] [Text ] Provider: sdl2
07-24 22:17:31.083 17843 17893 I python : [INFO ] [Window ] Provider: sdl2
07-24 22:17:31.100 17843 17893 E libEGL : validate_display:103 error 3008 (EGL_BAD_DISPLAY)
07-24 22:17:31.100 17843 17893 V SDL : setOrientation() orientation=-1 width=800 height=600 resizable=true hint=
07-24 22:17:31.103 1284 1723 I DebugKeepScreenOn: setHoldScreenLocked newHoldScreen:Session{f7539b8 17843:u0a10231} currentHoldScreen:null wakeLockState:false
07-24 22:17:31.103 1284 1723 I DebugKeepScreenOn: Acquiring screen wakelock due to Window{a2116f7 u0 org.test.myapp/org.kivy.android.PythonActivity}
07-24 22:17:31.103 17843 17893 D mali_winsys: EGLint new_window_surface(egl_winsys_display *, void *, EGLSurface, EGLConfig, egl_winsys_surface **, EGLBoolean) returns 0x3000
07-24 22:17:31.105 17843 17893 I python : [INFO ] [GL ] Using the "OpenGL ES 2" graphics system
07-24 22:17:31.107 17843 17893 I python : [INFO ] [GL ] Backend used <sdl2>
07-24 22:17:31.107 17843 17893 I python : [INFO ] [GL ] OpenGL version <b'OpenGL ES 3.2 v1.r18p0-01rel0.1ba20d94cbd7b05d6630eff84a60e5f7'>
07-24 22:17:31.108 17843 17893 I python : [INFO ] [GL ] OpenGL vendor <b'ARM'>
07-24 22:17:31.108 17843 17893 I python : [INFO ] [GL ] OpenGL renderer <b'Mali-G51'>
07-24 22:17:31.108 17843 17893 I python : [INFO ] [GL ] OpenGL parsed version: 3, 2
07-24 22:17:31.109 17843 17893 I python : [INFO ] [GL ] Texture max size <8192>
07-24 22:17:31.109 17843 17893 I python : [INFO ] [GL ] Texture max units <16>
07-24 22:17:31.120 1284 1723 I DebugKeepScreenOn: setHoldScreenLocked newHoldScreen:null currentHoldScreen:Session{f7539b8 17843:u0a10231} wakeLockState:true
07-24 22:17:31.120 1284 1723 I DebugKeepScreenOn: Releasing screen wakelock, obscured by null
07-24 22:17:31.148 17843 17893 I python : [INFO ] [Window ] auto add sdl2 input provider
07-24 22:17:31.149 17843 17893 I python : [INFO ] [Window ] virtual keyboard not allowed, single mode, not docked
07-24 22:17:31.336 17843 17893 V PythonActivity: addPermissionsCallback(): Added callback for onRequestPermissionsResult
07-24 22:17:31.340 1284 1723 I ActivityTaskManager: START u0 {act=android.content.pm.action.REQUEST_PERMISSIONS hwFlg=0x10 pkg=com.google.android.permissioncontroller cmp=com.google.android.permissioncontroller/com.android.packageinstaller.permission.ui.GrantPermissionsActivity (has extras)} from uid 10231
07-24 22:17:31.340 846 881 D AwareLog: iawared: decompress gpu mem, pid:17735
07-24 22:17:31.341 1284 1723 I ActivityTaskManager: ActivityRecord info: ActivityInfo{600db57 com.android.packageinstaller.permission.ui.GrantPermissionsActivity}
07-24 22:17:31.341 1284 1723 I HwActivityTaskManagerServiceEx: packageName:com.google.android.permissioncontroller,requestCode:1,isIntercepted:false,userId:0
07-24 22:17:31.342 1284 1723 D ActivityTaskManager: TaskLaunchParamsModifier:task=null activity=ActivityRecord{e541865 u0 com.google.android.permissioncontroller/com.android.packageinstaller.permission.ui.GrantPermissionsActivity t-1} display-from-source=0 display-id=0 display-windowing-mode=1
07-24 22:17:31.342 1284 1723 D ActivityTaskManager: TaskLaunchParamsModifier:task=null activity=ActivityRecord{e541865 u0 com.google.android.permissioncontroller/com.android.packageinstaller.permission.ui.GrantPermissionsActivity t-1} display-from-source=0 display-id=0 display-windowing-mode=1 activity-options-fullscreen=Rect(0, 0 - 0, 0) non-freeform-display maximized-bounds
07-24 22:17:31.342 2097 2513 I PG_ash : front pkg : com.google.android.permissioncontroller launcher: false
07-24 22:17:31.342 2097 2513 I PG_ash : above launcher front pkgs: [org.test.myapp, com.google.android.permissioncontroller]
07-24 22:17:31.342 1284 1723 V ActivityTaskManager: positionChild stackId=1291 to top.
07-24 22:17:31.343 1284 1723 V ActivityTaskManager: addAppToken: AppWindowToken{4f0d9eb token=Token{c5b593a ActivityRecord{e541865 u0 com.google.android.permissioncontroller/com.android.packageinstaller.permission.ui.GrantPermissionsActivity t3345}}} task={taskId=3345 appTokens=[AppWindowToken{b5e9840 token=Token{4cc77c3 ActivityRecord{f3822d4 u0 org.test.myapp/org.kivy.android.PythonActivity t3345}}}] mdr=false} at 2147483647
07-24 22:17:31.348 846 881 D AwareLog: iawared: WorkingsetProcessCommand subCmd = 352, userId=10231, pid=17843, org.test.myapp
07-24 22:17:31.348 846 881 D AwareLog: iawared: WorkingsetStop org.test.myapp
07-24 22:17:31.350 17843 17843 V PythonActivity: onPause()
07-24 22:17:31.350 17843 17843 V SDL : onPause()
07-24 22:17:31.351 17843 17843 V SDL : nativePause()
07-24 22:17:31.352 853 888 I Sen...@1.0-impl: activate-0 enabled-0 fwkOals-1 camOals-0 fwkOcolor-0 camOcolor-0 fwkOtof-0 camOtof-0
07-24 22:17:31.352 17843 17893 I python : [ERROR ] [Image ] Not found <rtsp://[admin:ad...@192.168.1.2/1/1](http://admin:admin@192.168.1.2/1/1)>
07-24 22:17:31.352 853 888 D SensorHub: EnableSensor-> handle: 0 enable : 0
07-24 22:17:31.352 853 888 D SensorHub: Channel Activate-> handle: 0, enabled:0, err: 0
07-24 22:17:31.353 853 888 D SensorHub: lib ver is 15
07-24 22:17:31.353 853 888 D SensorHub: accConvertCoff = 1000.000000
07-24 22:17:31.353 1284 1394 D SensorService: disableSensor handle:0, packageName:org.libsdl.app.SDLSurface
07-24 22:17:31.353 2097 2226 I SensorState: sensor:0 name:accelerometer enable:false uid:10231
07-24 22:17:31.353 2097 2226 I SensorState: sensor stop, total history time:619668
07-24 22:17:31.353 2097 2226 I SensorState: removeSensor,mHandles:{}
07-24 22:17:31.353 2097 2226 I PGServer: report state:4 event type:2 pid:0 uid:10231 pkg:null to pid: 1284
07-24 22:17:31.355 17843 17893 I python : [WARNING] [Base ] Unknown <android> provider
07-24 22:17:31.355 17843 17893 I python : [INFO ] [Base ] Start application main loop
07-24 22:17:31.356 1284 1723 V ActivityTaskManager: Making visible and scheduling visibility: ActivityRecord{e541865 u0 com.google.android.permissioncontroller/com.android.packageinstaller.permission.ui.GrantPermissionsActivity t3345}
07-24 22:17:31.356 872 980 D ScreemCommon: <LOGMGR> <SceneEnd> [Entry]
07-24 22:17:31.356 872 980 D ScreemCommon: <LOGMGR> <SceneEnd> [scene status ok,status:1 lastId:711302116]
07-24 22:17:31.356 872 980 D ScreemCommon: <LOGMGR> <SceneClose> [Entry]
07-24 22:17:31.356 872 980 D ScreemCommon: <LOGMGR> <SceneClose> [scene status ok,status:2 lastId:711302116]
07-24 22:17:31.356 872 980 D ScreemCommon: <LOGMGR> <SceneStart> [Entry]
07-24 22:17:31.356 872 980 D ScreemCommon: <LOGMGR> <SceneStart> [new scene start 711357587]
07-24 22:17:31.359 2097 2513 I AppFastHibernation: rev F_Z exception for visible pkg: com.google.android.permissioncontroller
07-24 22:17:31.359 1284 1723 W HwActivityTaskManagerServiceEx: appSwitch from: org.test.myapp to: com.google.android.permissioncontroller
07-24 22:17:31.359 2097 12591 I PGServer: android calls fast HApps
07-24 22:17:31.360 2097 12591 I AppFastHibernation: fast H duration: 1500 reason: start activity
07-24 22:17:31.360 17735 17735 W ActivityThread: handleWindowVisibility: no activity for token android.os.BinderProxy@5647bfa
07-24 22:17:31.361 1284 1492 D HwGameAssistantController: UPDATE: mCurFgPkg=com.google.android.permissioncontroller, mCurFgPid=17735, mCurIsGame=false
07-24 22:17:31.361 17843 17899 I python : [ERROR ] [ffpyplayer ] rtsp://[admin:ad...@192.168.1.2/1/1](http://admin:admin@192.168.1.2/1/1): Protocol not found
07-24 22:17:31.361 1954 1972 I AssistantService-1030200: registerHwActivityNotifier call fromPackage:org.test.myapp, toPackage:com.google.android.permissioncontroller
07-24 22:17:31.362 846 3952 I Pged-IPgedBinderService: ****action is 1, pid num is 3***
07-24 22:17:31.362 846 3952 I Pged-Freezer: freezePids
07-24 22:17:31.362 846 3952 I Pged-Freezer: Freeze process: 9634
07-24 22:17:31.362 1954 5079 D AssistantService-1030200: handleMessage app switch fromPackage:org.test.myapp, toPackage:com.google.android.permissioncontroller
07-24 22:17:31.362 2097 2226 D ScenarioService: front pkg : com.google.android.permissioncontroller launcher: false
07-24 22:17:31.362 2097 2226 D ScenarioService: new above launcher front pkgs: [org.test.myapp, com.google.android.permissioncontroller]
07-24 22:17:31.362 2097 2226 I AppManager: handleAppFrontEvent: com.google.android.permissioncontroller
07-24 22:17:31.362 846 3952 I Pged-Freezer: Freeze process: 7881
MY BUILDOZER CFG:
[app]
# (str) Title of your application
title = My Application
# (str) Package name
[package.name](http://package.name/) = myapp
# (str) Package domain (needed for android/ios packaging)
package.domain = org.test
# (str) Source code where the main.py live
source.dir = .
# (list) Source files to include (let empty to include all the files)
source.include_exts = py,png,jpg,kv,atlas
# (list) List of inclusions using pattern matching
#source.include_patterns = assets/*,images/*.png
# (list) Source files to exclude (let empty to not exclude anything)
#source.exclude_exts = spec
# (list) List of directory to exclude (let empty to not exclude anything)
#source.exclude_dirs = tests, bin, venv
# (list) List of exclusions using pattern matching
# Do not prefix with './'
#source.exclude_patterns = license,images/*/*.jpg
# (str) Application versioning (method 1)
version = 0.1
# (str) Application versioning (method 2)
# version.regex = __version__ = ['"](.*)['"]
# version.filename = %(source.dir)s/main.py
# (list) Application requirements
# comma separated e.g. requirements = sqlite3,kivy
requirements = python3, kivy, numpy, ffpyplayer, ffmpeg, openssl, ffpyplayer_codecs
# (str) Custom source folders for requirements
# Sets custom source for any requirements with recipes
# requirements.source.kivy = ../../kivy
# (str) Presplash of the application
#presplash.filename = %(source.dir)s/data/presplash.png
# (str) Icon of the application
#icon.filename = %(source.dir)s/data/icon.png
# (str) Supported orientation (one of landscape, sensorLandscape, portrait or all)
orientation = portrait
# (list) List of service to declare
#services = NAME:ENTRYPOINT_TO_PY,NAME2:ENTRYPOINT2_TO_PY
#
# OSX Specific
#
#
# author = © Copyright Info
# change the major version of python used by the app
osx.python_version = 3
# Kivy version to use
osx.kivy_version = 2.1.0
#
# Android specific
#
# (bool) Indicate if the application should be fullscreen or not
fullscreen = 0
# (string) Presplash background color (for android toolchain)
# Supported formats are: #RRGGBB #AARRGGBB or one of the following names:
# red, blue, green, black, white, gray, cyan, magenta, yellow, lightgray,
# darkgray, grey, lightgrey, darkgrey, aqua, fuchsia, lime, maroon, navy,
# olive, purple, silver, teal.
#android.presplash_color = #FFFFFF
# (string) Presplash animation using Lottie format.
# see https://lottiefiles.com/ for examples and https://airbnb.design/lottie/
# for general documentation.
# Lottie files can be created using various tools, like Adobe After Effect or Synfig.
#android.presplash_lottie = "path/to/lottie/file.json"
# (str) Adaptive icon of the application (used if Android API level is 26+ at runtime)
#icon.adaptive_foreground.filename = %(source.dir)s/data/icon_fg.png
#icon.adaptive_background.filename = %(source.dir)s/data/icon_bg.png
# (list) Permissions
android.permissions = INTERNET
# (list) features (adds uses-feature -tags to manifest)
#android.features = android.hardware.usb.host
# (int) Target Android API, should be as high as possible.
android.api = 29
# (int) Minimum API your APK / AAB will support.
#android.minapi = 21
# (int) Android SDK version to use
#android.sdk = 20
# (str) Android NDK version to use
#android.ndk = 23b
# (int) Android NDK API to use. This is the minimum API your app will support, it should usually match android.minapi.
#android.ndk_api = 21
# (bool) Use --private data storage (True) or --dir public storage (False)
#android.private_storage = True
# (str) Android NDK directory (if empty, it will be automatically downloaded.)
#android.ndk_path =
# (str) Android SDK directory (if empty, it will be automatically downloaded.)
#android.sdk_path =
# (str) ANT directory (if empty, it will be automatically downloaded.)
#android.ant_path =
# (bool) If True, then skip trying to update the Android sdk
# This can be useful to avoid excess Internet downloads or save time
# when an update is due and you just want to test/build your package
# android.skip_update = False
# (bool) If True, then automatically accept SDK license
# agreements. This is intended for automation only. If set to False,
# the default, you will be shown the license when first running
# buildozer.
# android.accept_sdk_license = False
# (str) Android entry point, default is ok for Kivy-based app
#android.entrypoint = org.kivy.android.PythonActivity
# (str) Full name including package path of the Java class that implements Android Activity
# use that parameter together with android.entrypoint to set custom Java class instead of PythonActivity
#android.activity_class_name = org.kivy.android.PythonActivity
# (str) Extra xml to write directly inside the <manifest> element of AndroidManifest.xml
# use that parameter to provide a filename from where to load your custom XML code
#android.extra_manifest_xml = ./src/android/extra_manifest.xml
# (str) Extra xml to write directly inside the <manifest><application> tag of AndroidManifest.xml
# use that parameter to provide a filename from where to load your custom XML arguments:
#android.extra_manifest_application_arguments = ./src/android/extra_manifest_application_arguments.xml
# (str) Full name including package path of the Java class that implements Python Service
# use that parameter to set custom Java class instead of PythonService
#android.service_class_name = org.kivy.android.PythonService
# (str) Android app theme, default is ok for Kivy-based app
# android.apptheme = "@android:style/Theme.NoTitleBar"
# (list) Pattern to whitelist for the whole project
#android.whitelist =
# (str) Path to a custom whitelist file
#android.whitelist_src =
# (str) Path to a custom blacklist file
#android.blacklist_src =
# (list) List of Java .jar files to add to the libs so that pyjnius can access
# their classes. Don't add jars that you do not need, since extra jars can slow
# down the build process. Allows wildcards matching, for example:
# OUYA-ODK/libs/*.jar
#android.add_jars = foo.jar,bar.jar,path/to/more/*.jar
# (list) List of Java files to add to the android project (can be java or a
# directory containing the files)
#android.add_src =
# (list) Android AAR archives to add
#android.add_aars =
# (list) Put these files or directories in the apk assets directory.
# Either form may be used, and assets need not be in 'source.include_exts'.
# 1) android.add_assets = source_asset_relative_path
# 2) android.add_assets = source_asset_path:destination_asset_relative_path
#android.add_assets =
# (list) Gradle dependencies to add
#android.gradle_dependencies =
# (bool) Enable AndroidX support. Enable when 'android.gradle_dependencies'
# contains an 'androidx' package, or any package from Kotlin source.
# android.enable_androidx requires android.api >= 28
#android.enable_androidx = False
# (list) add java compile options
# this can for example be necessary when importing certain java libraries using the 'android.gradle_dependencies' option
# see https://developer.android.com/studio/write/java8-support for further information
# android.add_compile_options = "sourceCompatibility = 1.8", "targetCompatibility = 1.8"
# (list) Gradle repositories to add {can be necessary for some android.gradle_dependencies}
# please enclose in double quotes
# e.g. android.gradle_repositories = "maven { url 'https://kotlin.bintray.com/ktor' }"
#android.add_gradle_repositories =
# (list) packaging options to add
# see https://google.github.io/android-gradle-dsl/current/com.android.build.gradle.internal.dsl.PackagingOptions.html
# can be necessary to solve conflicts in gradle_dependencies
# please enclose in double quotes
# e.g. android.add_packaging_options = "exclude 'META-INF/common.kotlin_module'", "exclude 'META-INF/*.kotlin_module'"
#android.add_packaging_options =
# (list) Java classes to add as activities to the manifest.
#android.add_activities = com.example.ExampleActivity
# (str) OUYA Console category. Should be one of GAME or APP
# If you leave this blank, OUYA support will not be enabled
#android.ouya.category = GAME
# (str) Filename of OUYA Console icon. It must be a 732x412 png image.
#android.ouya.icon.filename = %(source.dir)s/data/ouya_icon.png
# (str) XML file to include as an intent filters in <activity> tag
#android.manifest.intent_filters =
# (str) launchMode to set for the main activity
#android.manifest.launch_mode = standard
# (list) Android additional libraries to copy into libs/armeabi
#android.add_libs_armeabi = libs/android/*.so
#android.add_libs_armeabi_v7a = libs/android-v7/*.so
#android.add_libs_arm64_v8a = libs/android-v8/*.so
#android.add_libs_x86 = libs/android-x86/*.so
#android.add_libs_mips = libs/android-mips/*.so
# (bool) Indicate whether the screen should stay on
# Don't forget to add the WAKE_LOCK permission if you set this to True
#android.wakelock = False
# (list) Android application meta-data to set (key=value format)
#android.meta_data =
# (list) Android library project to add (will be added in the
# project.properties automatically.)
#android.library_references =
# (list) Android shared libraries which will be added to AndroidManifest.xml using <uses-library> tag
#android.uses_library =
# (str) Android logcat filters to use
#android.logcat_filters = *:S python:D
# (bool) Android logcat only display log for activity's pid
#android.logcat_pid_only = False
# (str) Android additional adb arguments
#android.adb_args = -H host.docker.internal
# (bool) Copy library instead of making a libpymodules.so
#android.copy_libs = 1
# (list) The Android archs to build for, choices: armeabi-v7a, arm64-v8a, x86, x86_64
# In past, was `android.arch` as we weren't supporting builds for multiple archs at the same time.
android.archs = arm64-v8a, armeabi-v7a
# (int) overrides automatic versionCode computation (used in build.gradle)
# this is not the same as app version and should only be edited if you know what you're doing
# android.numeric_version = 1
# (bool) enables Android auto backup feature (Android API >=23)
android.allow_backup = True
# (str) XML file for custom backup rules (see official auto backup documentation)
# android.backup_rules =
# (str) If you need to insert variables into your AndroidManifest.xml file,
# you can do so with the manifestPlaceholders property.
# This property takes a map of key-value pairs. (via a string)
# Usage example : android.manifest_placeholders = [myCustomUrl:\"org.kivy.customurl\"]
# android.manifest_placeholders = [:]
# (bool) disables the compilation of py to pyc/pyo files when packaging
# android.no-compile-pyo = True
# (str) The format used to package the app for release mode (aab or apk or aar).
# android.release_artifact = aab
# (str) The format used to package the app for debug mode (apk or aar).
# android.debug_artifact = apk
#
# Python for android (p4a) specific
#
# (str) python-for-android URL to use for checkout
#p4a.url =
# (str) python-for-android fork to use in case if p4a.url is not specified, defaults to upstream (kivy)
#p4a.fork = kivy
# (str) python-for-android branch to use, defaults to master
p4a.branch = develop
# (str) python-for-android specific commit to use, defaults to HEAD, must be within p4a.branch
#p4a.commit = HEAD
# (str) python-for-android git clone directory (if empty, it will be automatically cloned from github)
#p4a.source_dir =
# (str) The directory in which python-for-android should look for your own build recipes (if any)
#p4a.local_recipes =
# (str) Filename to the hook for p4a
#p4a.hook =
# (str) Bootstrap to use for android builds
# p4a.bootstrap = sdl2
# (int) port number to specify an explicit --port= p4a argument (eg for bootstrap flask)
#p4a.port =
# Control passing the --use-setup-py vs --ignore-setup-py to p4a
# "in the future" --use-setup-py is going to be the default behaviour in p4a, right now it is not
# Setting this to false will pass --ignore-setup-py, true will pass --use-setup-py
# NOTE: this is general setuptools integration, having pyproject.toml is enough, no need to generate
# setup.py if you're using Poetry, but you need to add "toml" to source.include_exts.
#p4a.setup_py = false
# (str) extra command line arguments to pass when invoking pythonforandroid.toolchain
#p4a.extra_args =
#
# iOS specific
#
# (str) Path to a custom kivy-ios folder
#ios.kivy_ios_dir = ../kivy-ios
# Alternately, specify the URL and branch of a git checkout:
ios.kivy_ios_url = https://github.com/kivy/kivy-ios
ios.kivy_ios_branch = master
# Another platform dependency: ios-deploy
# Uncomment to use a custom checkout
#ios.ios_deploy_dir = ../ios_deploy
# Or specify URL and branch
ios.ios_deploy_url = https://github.com/phonegap/ios-deploy
ios.ios_deploy_branch = 1.10.0
# (bool) Whether or not to sign the code
ios.codesign.allowed = false
# (str) Name of the certificate to use for signing the debug version
# Get a list of available identities: buildozer ios list_identities
#ios.codesign.debug = "iPhone Developer: <lastname> <firstname> (<hexstring>)"
# (str) The development team to use for signing the debug version
#ios.codesign.development_team.debug = <hexstring>
# (str) Name of the certificate to use for signing the release version
#ios.codesign.release = %(ios.codesign.debug)s
# (str) The development team to use for signing the release version
#ios.codesign.development_team.release = <hexstring>
# (str) URL pointing to .ipa file to be installed
# This option should be defined along with `display_image_url` and `full_size_image_url` options.
#ios.manifest.app_url =
# (str) URL pointing to an icon (57x57px) to be displayed during download
# This option should be defined along with `app_url` and `full_size_image_url` options.
#ios.manifest.display_image_url =
# (str) URL pointing to a large icon (512x512px) to be used by iTunes
# This option should be defined along with `app_url` and `display_image_url` options.
#ios.manifest.full_size_image_url =
[buildozer]
# (int) Log level (0 = error only, 1 = info, 2 = debug (with command output))
log_level = 2
# (int) Display warning if buildozer is run as root (0 = False, 1 = True)
warn_on_root = 1
# (str) Path to build artifact storage, absolute or relative to spec file
# build_dir = ./.buildozer
# (str) Path to build output (i.e. .apk, .aab, .ipa) storage
# bin_dir = ./bin
# -----------------------------------------------------------------------------
# List as sections
#
# You can define all the "list" as [section:key].
# Each line will be considered as a option to the list.
# Let's take [app] / source.exclude_patterns.
# Instead of doing:
#
#[app]
#source.exclude_patterns = license,data/audio/*.wav,data/images/original/*
#
# This can be translated into:
#
#[app:source.exclude_patterns]
#license
#data/audio/*.wav
#data/images/original/*
#
# -----------------------------------------------------------------------------
# Profiles
#
# You can extend section / key with a profile
# For example, you want to deploy a demo version of your application without
# HD content. You could first change the title to add "(demo)" in the name
# and extend the excluded directories to remove the HD content.
#
#[app@demo]
#title = My Application (demo)
#
#[app:source.exclude_patterns@demo]
#images/hd/*
#
# Then, invoke the command line with the "demo" profile:
#
#buildozer --profile demo android debug
#######CODE BLOCK##########
import kivy
kivy.require('2.1.0') # replace with your current kivy version !
from [kivy.app](http://kivy.app/) import App
from kivy.graphics.texture import Texture
from kivy.uix.widget import Widget
from kivy.clock import Clock
from kivy.graphics import Rectangle
from kivy.uix.camera import Camera
from kivy.uix.video import Video
from kivy.uix.videoplayer import VideoPlayer
from kivy.core.window import Window
import numpy as np
# from kivy.network.urlrequest import UrlRequest
from android.permissions import request_permissions, Permission, check_permission
class CameraApp(App):
def build(self):
request_permissions([Permission.INTERNET])
self.snapshot = None
self.root = Widget()
self.width = Window.size[0]
self.height = Window.size[1]
self.camera = Video(source="rtsp://[admin:ad...@192.168.1.2/1/1](http://admin:admin@192.168.1.2/1/1)", state='play')
Clock.schedule_interval(self.get_texture1, 1.0 / 25.0)
return self.root
def get_texture1(self, event):
try:
self.snapshot = self.camera.texture
if self.snapshot != None:
self.reg = self.snapshot.get_region(0, 0, 50, 50)
# data processing here on numpy array
nparr = np.fromstring(self.camera.texture.pixels, dtype=np.uint8)
print(nparr)
except Exception as ex:
print("get texture exception", ex)
print("get texture wtf")
if __name__ == "__main__":
CameraApp().run()
Kivy(2.1.0) and buildozer(1.4.0)
Thanks
Description
build an android app with ffpyplayer does not work. The last error log is I/python (26059): [ERROR ] [ffpyplayer ] rtsp://192.168.13.100/1: Protocol not found
buildozer.spec
Command:
Spec file:
Logs
Thanks!