Я запускаю намерение записи видео с ограничением по времени. Он отлично работает на любом устройстве, но на 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?