I am experimenting with the Camera in the WX pack, and have some questions:
How do I get the "Devices" list filled out (currently on Win32, but most importantly for mobile platforms) so that I can allow the user to select camera?
How do I then select the chosen camera (and is front/back two different devices)?
On newer iPhones, there are three back cameras - one of which is for (extreme) closeups. How do I select/enable the use of this (I haven't tried the demo on iOS yet, as the employee with such a device is absent at the moment)
When I tried the Bar Code Decoder demo on Win32, and selected EAN-13 and let it scan a bar code, my Delphi hard-terminated abruptly, pulling RAD studio down with it. I assume that's not what was supposed to happen
How do I control the light on the camera (turn it on/off, reading the current tate)?
Is there an event that can be fired each time a frame is available (like the standard Delphi TCamera has) so I can continually scan the camera image for bar codes?
1 - 2: I suggest to start with the documentation as it shows how to list and select the listed devices: TTMSFNCWXCamera - TMS FNC WX Pack
Please read it carefully so you don't accidentally skip details such as internet requirement.
Additionally, for front/back you have quick settings via the CameraType property. You should be aware that this method will pick a default back/front camera module, we have no control over what the getUserMedia API receives as default.
3: If you list the devices, you can (in theory) select any of them. We haven't tested this with an iPhone closeup camera though, but Android let us cycle between all the available camera modules.
4: Certainly not, however we cannot reproduce this. We'll need a way to try to replicate this here. What is your Delphi and Windows version? Do you have any additional details (e.g. any modified properties in the demo)?
5: Via constraints, but support may vary based on the platform. The documentation has some info on this, and specifically for the flash see here: TMSFNCWXCamera and flash light
6: The getUserMedia API doesn't provide an event for each frame. Instead, you can request a frame. This is done by calling GetSnapshot upon which the OnGetSnapshot event will trigger. The barcode decoder component requests frames automatically, if you don't shut down the camera with the Stop call (unlike the demo), it should keep scanning.