Why method set() from class VideoCapture not set desired frame and method get() returns only 2 values?

Hello! (Sorry for my English:) my native language - ukrainian).

I posted a question on StackOverflow to find out why method set() doesn’t set any values.
I looked through a lot of information on this topic, from forums to opencv sources.

I’m opening a video with VideoCapture and I want to implement something like a video player by moving, for example, the SeekBar and to set the desired frame. To implement this, me need to get the total number of frames. Theoretically, I know how to get: the number of fps * per duration. I want to get fps with the line:
capture.get(Videoio.CAP_PROP_FPS);
but this always return 0.0. If I correctly understood the source code, then the logic is implemented there only for 2 constants. Why? Need an ffmpeg backend? And the set() method generally always returns false. Android doesn’t allow this? It is interesting that in the logs when the application is launched, number of fps and the duration are displayed as raw data:

I also tried different grabbers from javacv, including FFmpegFrameGrabber, but they don’t return the desired frame either.
If you need more information from me, take a look at the question on stackoverflow - i described the problem in more detail there.