Camera Remote API for Sony a7II 'not available now' - api

Let me start by giving some context: I have a Sony a7II camera which I wanted to control remotely. There's an app for that (PlayMemories) but it doesn't have all the features I need. So I decided to write my own app using Camera Remote API.
What I achieved so far: I have established connection between camera and phone, I have a working liveview and I'm displaying current aperture value on screen ('currentFNumber' from getEvent response).
What I'm trying to do: change aperture value. Calling getMethodTypes returns setFNumber as supported for my camera model. And here's the problem. It's on the supported list but not on the currently available list.
ShootMode is set to "still" and camera status is "IDLE" but when I check for 'setFNumber' availability it says 'currently not available'.
Answers for similar questions on stackoverflow suggested changing CameraFunction to 'remote shooting' but for me it's unavailable (error 12 'No such method'). When I check currentCameraFunction it's giving me null.
StartRecMode doesn't seem to be required (there's only 'stopRecMode' in currently available API calls).
So here's my question: am I missing something else or is it possible my camera software is faulty? I'm kinda stuck with this problem for a while now and I'd really appreciate some guidance. Thanks!

There are a couple things to check here:
Check that your camera has the latest firmware. http://esupport.sony.com/US/p/model-home.pl?mdl=ILCE7M2&template_id=1&region_id=1&tab=download#/downloadTab
Check that you have the latest Smart Remote Control app installed on your camera - https://www.playmemoriescameraapps.com/portal/usbdetail.php?eid=is9104-npia09014_00-f00002

Related

Webrtc to remotely control phone camera

I am looking for help to take still photos remotely using webrtc. Is there an API that allows access to the other person's rear camera (with permissions) to take photos and save them to my phone? The idea is to use this to take full resolution photos with Android and iOS using react.
Yes you can do this by let them join a channel and then you can send request from your side to ask camera to take picture and then send you back. This is just like message. You sending message from your side to ask other person for taking picture although. If he is using browser then it can be done using js for getting permissions. But in case of a mobile application you can have your own endpoints to interact with channels. I hope you got the basic idea.

UWP access buttons

Helloo all
I'm currently developing an app for surface pro 3 that should be capable of:
detecting whether touchscreen was tapped and where
getting device information (product ID, amount of RAM, CPu model etc.) done by launching console application first which is capable of getting this information and saves it to a specific folder, UWP app can read its results from there and log them.
accessing sensor data like: accelerometer, gyroscope and ambient light sensor
testing cameras as i can command an app to make picture using either front or rear camera
testing microphones (both front and back)
testing speakers (i made synthesizer that is able to make beeps at given frequency at given stereo mode (left or right if both)
testing wifi - so it can connect to desired wifi network
bluetooth (swill working on it...)
I have already figured out quite a lot and put out a lot of work into it already, all listed tests are already developed on that UWP application so switching to completely different platform means rewriting whole app which I don't have time anymore.
UWP was chosen because this can run on different windows 10 devices and after completing this app the same app (with minor modifications) will be used on other windows 10 devices (like other surfaces and many different windows 10 phones)
This app will be automatically installed on a factory-resetted surface pro 3 that has no special configurations enabled, so tinkering with its settings is resource-hungry and not recommended process at all.
Now I have some other serious issues regarding of device:
how can I test the functionality of all the buttons Surface pro 3 has ?
It has 3 buttons: Volume up, Volume down and power button
but pressing power button sets screen to clack and locks device.
Can I make app override basic functionality of a button so that if button is pressed it detects it and logs its result.
same question goes to volume up and down buttons.
Only similiar questions about this are here:
Another thread on StackOverflow
I also cannot use same solution as I did with getting device information because test must be repetitive while app is running. (and UWP app cannot launch console application by itself)
Any help regarding this topic is highly welcome.
First for the power button behavior try this :
https://www.windowscentral.com/how-customize-power-button-action-when-pressed-windows-10
I don't have a surface so I cannot test it
also, I do have some inputs and thoughts about your app:
it seems to me that you are doing some sort of sanity check software for pieces of hardware I'd suggest looking into this
https://support.microsoft.com/en-my/help/4037239/surface-fix-common-surface-problems-using-surface-diagnostic-toolkit
https://www.lovemysurface.net/surface-diagnostic-toolkit/
additional thoughts of mine :
Overriding hardware behavior programmatically ould be considered as a harmful action especially when it comes to prebuilt devices such as the surface and by extension, I don't foresee MS providing API's for such a capability also such button might be communicating to the hardware directly rather and doesn't go through the software, runtime or the OS at all, changing it manually using the link i provided might be reflecting some registry settings changes but since UWP apps run in containers and cannot directly edit registry there is a dirty workaround look into this
read/write registery key file in uwp
hope this would help
You can use SystemInformation helper class from windows community toolkit it gives you a lot of details about the device.
https://learn.microsoft.com/en-us/windows/communitytoolkit/helpers/systeminformation

What is the API to delete a photo using the Sony Camera Remote API?

Is it possible to delete images remotely using an API call for Sony cameras that support the Sony Camera Remote API?
Taking pictures is not possible once the camera memory card gets full and there seems to be no way provided to remotely delete images or erase the card. This is with the HDR-AS100, I assume other cameras have similar limitation.
If not possible here are two solutions that would resolve the issue for us:
Provide an API to enumerate/read/delete images stored on the camera memory card, or at the very least allow for an API to delete the picture returned by actTakePicture
Have an option in actTakePicture to specify not to store the image on the memory card, at least not permanently. i.e. erased once next picture is taken.
There is currently no API to do this unfortunately. We appreciate the feedback though and I will pass this on to our API team as a suggestion.

How to get notifications when I reach internet enabled area (wifi circle)?

Presently I'm working on a Windows Phone application that will work in both online and offline mode. So that if the net is available means I need to sync my offline data to the respective server. My requirement is if my app is working and when I reach a wifi-enabled circle (area) I need to get a notification. Otherwise need to race an event.
How can I achieve this? Is there any notification channel present in WP7 to inform about this? If yes please demonstrate some code to achieve the goal.
You can determine if you are connected to a network, you can get the connection type and the phone informs you when it goes on/offline:
NetworkInterface.GetIsNetworkAvailable() checks if you are online or offline
DeviceNetworkInformation tells you more about the network type (Wifi, ...)
NetworkChange.NetworkAddressChanged += new NetworkAddressChangedEventHandler(OnNetworkChangeHandler); registers a listener to listen for changes
Click here for an example on how to listen for changes. Also very good is this tutorial from MSDN, demonstrating all the goodies mentioned above!
I also recommend reading this blog post as it contains much valuable information about the different APIs.
PS: It is not possible to get a list of all available WLANs around the phone. You can only see the WLAN you are connected to (if). That is a limitation of the Windows Phone API.
The platform does not include support for the "GeoFencing" scenario you describe.
The best solution currently available is to periodically (using a Background Task) check to see if a connection is available and to begin the sync then.

MC75 using symbol.imaging.device libraries for program

UPDATE:
I found another library in the Windows Mobile - CameraCaptureDialog - this did the job - never did figure out the zero length available devices...
Hi all,
I have a .net application running on a symbol mc75 (motorola) using the scanner. I am now trying to add functionality for the camera and I am running into issues.
To find the 'devices' you are supposed to use the library's 'available devices' function.
With the barcode it is symbol.barcode.devices.availabledevices and it returns two items (you can scan from the scanner or using the camera device)
However, when I do the camera library it does not find any devices - symbol.imaging.devices.availabledevices returns 0
I can take a picture using the software on the mc75, so I know the functionality is there, I just can't figure out how to get to it programmatically....
Does anyone have any ideas?
Thanks for any help!
I had the same problem - Symbol.Imaging.Devices.Availabledevices returned zero devices but I could use the scanner without problems.
When I installed the Imager API Support v1.00 For Color Camera, Symbol.Imaging.Devices.Availabledevices returned 1 device and I could use Imager from Symbol.Imaging to take photos.