web
You’re offline. This is a read only version of the page.
close
Skip to main content

Notifications

Announcements

Community site session details

Community site session details

Session Id :
Power Platform Community / Forums / Power Apps / Slowness of camera con...
Power Apps
Unanswered

Slowness of camera control configurated

(0) ShareShare
ReportReport
Posted on by 87

I made one APP, and used the camera control, everything is fine, but I found it is very slow when opening the camera control, which need spend much time to wait the camera configurated on device.

And on the other hand, I also found if firstly navigate the screen of taking photos, 3~4 seconds can correctly configurate the camera and then can take photos, but when we close this screen, then navigate it again, issues occurred, which need too much time to wait camera control ready, sometimes, which need 1minutes.

I don't know why? Please share some knowledge.

The function is by clicking the camera icon to navigate to new screen to take photos, but need to wait so long time to make camera ready, once the camera is ready, click it and save photos is fine, no any problems.

BollGary_0-1645066644121.png

BollGary_1-1645066709848.png

 

 

Categories:
I have the same question (0)
  • BollGary Profile Picture
    87 on at

    I also found one interesting thing, if I click the on/off button on my Phone(Android) , it locks the screen and then wakes it up, the camera control immediately enabled. I doubt this issue cause from the phone, and I also try in PC, no this issue, but for mobile phone, it is existing, I also use my colleagues' phone, same problem.

    I tried to set one global variable to enable camera control true or false, can't fix this issue. So I have to click the on/off button on my phone again and again.

  • svankemenade Profile Picture
    10 on at

    Hi,

    I'm experiencing the same on a Microsoft Surface Pro 8. The app works perfectly fine on an HP Zbook. Please let me know if you've resolved the issue.

    Thanks in advance!

    Kind regards,

    Sebastiaan

     

  • BollGary Profile Picture
    87 on at

    Actually, not yet, I found this issue should be caused from the different camera configuration in different devices, especially for the devices which include multiple cameras, some devices without any issue, but some devices may have. Currently, I used very stupid method to solve this issue. I add one toggle button to switch the camera by manual as below shown, if users' device with this issue, he/she can enter twice this boggle button to switch the camera value from 0 to 1(face back camera to face front camera), then back 1 to 0. This is very stupid solution, but very useful, at least makes the camera work.

    BollGary_0-1646701906963.png

     

  • BollGary Profile Picture
    87 on at

    By the way, I have tried use programming to simulate this step to switch the camera property, but it can't work, I don't know why must by manual.

  • svankemenade Profile Picture
    10 on at

    Thanks for your reply! So if I understand you correctly the camera control loads very slow (especially when a device has multiple camera's), but once you add a toggle to turn the camera off and on again it loads fast?

  • BollGary Profile Picture
    87 on at

    Actually, this is switch the cameras, yes, it loads very very fast, I don't know how to turn off the camera control, it is not helpful if disable the camera control and then restore it,  I have tried this, and use programming to switch cameras also not useful. Very interesting issue, if you have found better solutions, please also share to me. I have ever tried so many times and also wish to get the answers.

  • svankemenade Profile Picture
    10 on at

    Check, in my app it takes ages to even load the camera list so I don't think we're experiencing the same here. Switching the cameras doesn't solve the problem on my part either. 

  • Heathbar Profile Picture
    2 on at

    I was able to get a workaround to help temporarily resolve this issue... especially if you don't want a user to have to select the camera that is being used.

     

    I added the following controls and set the following properties as follows:

     

    Screen1:

    • OnVisible:

    UpdateContext({varLoading: true});

    Reset(Dropdown1);

    Set(selectedCam, LookUp(Camera1.AvailableDevices, Id = 2).Name);

     

    Timer1:

    • Duration: 2000
    • OnTimerEnd:

    //These ID numbers will be set to which camera ID number you want to use

    //This is set to the Rear-facing camera on a Samsung Galaxy XCover Pro

    If(!IsBlank(selectedCam),

        Set(selectedCam, LookUp(Camera1.AvailableDevices, Id = 3).Name);,

     

        Set(selectedCam, LookUp(Camera1.AvailableDevices, Id = 2).Name);

    );

     

    If(Dropdown1.Selected.ID= 3, UpdateContext({varLoading: false}););

    • Start: true
    • Repeat: IsBlank(selectedCam)
    • AutoStart: true
    • Visible: false

     

    Dropdown1:

    • Items: Camera1.AvailableDevices
    • Default: selectedCam
    • Visible: false

     

    Camera1:

    • Camera: Dropdown1.Selected.ID

    I also created a custom component that covers the entire screen in a rectangle with the properties below:

    • Fill: RGBA(0,0,0,.75)

    And a loading spinner gif to the custom component as well.

     

    I then added this custom component to the screen when the camera is loading, and set the Visible property of it to be varLoading which was set in the OnVisible of Screen1 and the OnTimerEnd of Timer1.

  • sketchdelite Profile Picture
    4 on at

    I might give @Heathbar 's idea a go in a couple of days time, sounds promising, otherwise the camera control has been of slight frustration for some of my users too.

    Update (16/08): The below didn't end up working :<

    From what I've seen, on devices where it's not consistent, the camera control will work on the first time you open the 'camera screen', but if you navigate away from that screen and then head back, it doesn't want to work again. I've tried making the Camera property of the camera control dynamic, using timers etc... but it doesn't seem to work.

    There is one small trick though, at least from what I've tried. If you add a camera control to every screen (1 width and 1 height, for screens where you don't actually need to use it) such that it covers all screens the users will navigate to, then the camera control functionality doesn't break.
    You can test this idea by leaving some screens without the 1x1 camera, navigate to them, and then watch the camera control break on the screen(s) you intended to use them on.
    Obviously some pros and cons to weigh up here, and I don't know what this means in terms of memory, loading times etc... by having a control on every screen, so take caution if you try this.

  • sketchdelite Profile Picture
    4 on at

    Update (29/08): Setting the duration of the Timer to 2000ms resolved that user's issue (more time to load camera stream / camera devices).

    Update (22/08): Some reason it's not working for Samsung s22 given it has 4 camera's in the following format:

    [
    {
    "DesiredOrder": 1,
    "Id": 2,
    "Name": "camera2 2, facing back"
    },
    {
    "DesiredOrder": 1,
    "Id": 3,
    "Name": "camera2 0, facing back"
    },
    {
    "DesiredOrder": 2,
    "Id": 0,
    "Name": "camera2 3, facing front"
    },
    {
    "DesiredOrder": 2,
    "Id": 1,
    "Name": "camera2 1, facing front"
    }
    ]
    *DesiredOrder was used to make the camera default to a back facing cam.

     

    Will have another shot at it sometime hopefully.

    -------------------------------------------------------------

    Hmmm, okay I think I've found something promising this time, that works programmatically. It goes off Heathbar's idea (thank you!), which I tried without the use of a component, but still had no luck. I did notice however, that if the camera control gets the opportunity to load under a different available device (which could be done by swapping manually), then the camera rejigs itself and starts working again.
    To force the load of a different device programmatically, instead of making the 'Default' property of the dropdown dynamic, we make the 'Camera' property of the camera control dynamic with respect to the dropdown.

    To do this, we set the item's property to be a collection (colAvailableCameraDevices) and change the collection when the screen becomes visible. Then after a timer starts and stops, the collection is updated with the full available set of devices. The timer must be sufficiently long such that the stream shows on the camera control before the collection is updated (1000ms was the lowest I could get).

    Setup

    OnVisible: 
    Reset(drpCameraDevices);
    Concurrent(
    ClearCollect(colAvailableCameraDevices, Last(camCameraStream.AvailableDevices)),
    UpdateContext({cvShowCamera: false})
    )

    Timer
    OnTimerEnd: Concurrent(
    ClearCollect(colAvailableCameraDevices, camCameraStream.AvailableDevices),
    UpdateContext({cvShowCamera: true})
    )
    Duration: 1000
    Autostart: true
    Visible: false

    drpCameraDevices
    Items: If(
    IsEmpty(colAvailableCameraDevices),
    camCameraStream.AvailableDevices,
    colAvailableCameraDevices
    )
    Default: First(colAvailableCameraDevices).Id

    camCameraStream
    Camera: drpCameraDevices.Selected.Id
    Visible: Coalesce(cvShowCamera, true)

    Hope this makes sense!

Under review

Thank you for your reply! To ensure a great experience for everyone, your content is awaiting approval by our Community Managers. Please check back later.

Helpful resources

Quick Links

Forum hierarchy changes are complete!

In our never-ending quest to improve we are simplifying the forum hierarchy…

Ajay Kumar Gannamaneni – Community Spotlight

We are honored to recognize Ajay Kumar Gannamaneni as our Community Spotlight for December…

Leaderboard > Power Apps

#1
WarrenBelz Profile Picture

WarrenBelz 721 Most Valuable Professional

#2
Michael E. Gernaey Profile Picture

Michael E. Gernaey 320 Super User 2025 Season 2

#3
Power Platform 1919 Profile Picture

Power Platform 1919 268

Last 30 days Overall leaderboard