Намерение записи видео с ограничением по времени никогда не останавливается в заданный срок на Android O

Я запускаю намерение записи видео с ограничением по времени. Он отлично работает на любом устройстве, но на Android O он никогда не останавливается в заданное время. Протестированные устройства: Nexus 5X, Nexus 6P, Pixel. Все они имеют Android O.

public static void videoCaptureActivity(Activity activity, Uri filePath, int durationLimit ){                
            Intent intent = new Intent(MediaStore.ACTION_VIDEO_CAPTURE);
            intent.addFlags(Intent.FLAG_GRANT_WRITE_URI_PERMISSION);
            intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK);
            intent.putExtra(MediaStore.EXTRA_OUTPUT, filePath);
            intent.putExtra(MediaStore.EXTRA_DURATION_LIMIT, durationLimit * 60);
            activity.startActivityForResult(intent, ViewConstants.KEY_VIDEO_CAPTURE_CODE);
         }

Я проверил журналы, которые я нашел, не помогает, хотя я делюсь ими:

08-18 11:36:07.511 3136-10386/? E/mm-camera-sensor: port_sensor_handle_aec_update:444miss aec update window, skip
08-18 11:36:08.111 3396-1469/? D/WificondControl: Scan result ready event
08-18 11:36:08.352 3396-3426/? I/zygote64: Background concurrent copying GC freed 73915(3MB) AllocSpace objects, 2(40KB) LOS objects, 42% free, 16MB/28MB, paused 656us total 202.501ms
08-18 11:36:10.379 8360-9342/? E/VideoRecPreImp2: onMaxDuration 60018
08-18 11:36:12.381 356-356/? W//system/bin/hwservicemanager: getTransportFromManifest: Cannot find entry [email protected]::IMapper in either framework or device manifest, using default transport.
08-18 11:36:12.387 10718-10718/? I/vndksupport: sphal namespace is not configured for this process. Loading /vendor/lib64/hw/gralloc.msm8992.so from the current namespace instead.

Он просто говорит "E/VideoRecPreImp2: onMaxDuration 60018", что совершенно бесполезно. Возможно ли, что атрибут для установки ограничения времени был изменен для O? Но я проверил Android-O Preview API , такой информации нет. Кто-нибудь сталкивался с этой проблемой?

Обновление:

Только что протестировано на Nexus 6 с 7.1.1 и Nexus 5 с 6.0, на Nexus 6 все работает нормально, но не на Nexus 5. Это как-то связано с GoogleCamera?


person TheLittleNaruto    schedule 18.08.2017    source источник
comment
Я тестировал Pixel AVD с API 26 (v4), он работает нормально, и да, если время составляет 60 секунд, вы получите обратный отсчет только тогда, когда будут последние 60 секунд.   -  person DwlRathod    schedule 18.08.2017
comment
Вы пробовали использовать MediaRecorder ?? вместо записи видео   -  person Omar Dhanish    schedule 18.08.2017
comment
Спасибо за изучение этого, но у вас есть какое-нибудь настоящее устройство? Потому что для записи видео было бы хорошо протестировать на реальном устройстве. @DwlRathod   -  person TheLittleNaruto    schedule 18.08.2017
comment
@OmarDanisha Нет, и я не хочу использовать пользовательскую камеру.   -  person TheLittleNaruto    schedule 18.08.2017
comment
пожалуйста, обратитесь сюда, я думаю, это поможет вам stackoverflow.com/a/4362411/3872374   -  person Omar Dhanish    schedule 18.08.2017
comment
@OmarDanisha Чувак, у меня не будет доступа к MediaRecorder, когда я буду использовать намерение видео. Так что эта ссылка вообще бесполезна.   -  person TheLittleNaruto    schedule 18.08.2017
comment
НЕТ, я только что показал вам другой подход.   -  person Omar Dhanish    schedule 18.08.2017
comment
См. В последнее время в Camera API было много изменений, управление всеми этими API будет головной болью. Также мы не разрабатываем приложение на основе камеры. Так что для меня бессмысленно использовать кастомный. Потому что, если в будущем произойдут какие-либо изменения, потребуются затраты на техническое обслуживание, которых мы в любом случае хотим избежать. @ОмарДаниша   -  person TheLittleNaruto    schedule 18.08.2017