Вопрос:
Как получить миниатюру видео для личного файла приложения? В частности, есть ли способ напрямую извлечь видеокадры из файла .mpeg?
Задний план:
- Мое приложение включает камеру, которая может записывать видео.
- По причинам продукта видеофайл изначально создается и записывается в приватном режиме в каталоге приватных данных приложения, что делает его приватным для приложения. Это делается с помощью:
Context#openFileOutput(fileName, Context.MODE_PRIVATE)
— типичный путь к файлу выглядит так:/data/data/[package.name]/files/[fileName].mp4
— к вашему сведению, я уже пробовал использоватьContext.MODE_WORLD_READABLE
вместоContext.MODE_PRIVATE
, но это не помогло. - Даже если видео может в конечном итоге оказаться во внешнем хранилище (путем перемещения файла в
Environment#getExternalStoragePublicDirectory(Environment.DIRECTORY_MOVIES)
) миниатюра должна отображаться, пока видео находится в личном хранилище приложения. -
- Note: as long as the video file is in application-private storage, it is not added to the MediaStore (the image/video content provider on the device Gallery feeds on). Only once the video is moved to external storage do I add it the MediaStore. This is a product-related decision which I cannot circumnavigate; unless there's a way to add the video the media store without it being visible to other apps... I wonder if videos in application-private storage can be added to the media store and would remain application-private but gain all the free "services" provided by the media store such as thumbnail generation.