Вопрос:
Как получить миниатюру видео для частного файла приложения?
В частности, есть ли способ извлекать видеокадры напрямую из файла .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)
) , эскиз должен отображаться пока видео находится в частном хранилище приложения.
Похоже, что ThumbnailUtils.createVideoThumbnail (String, int)
отлично работает с файлом после его перемещения в общедоступный каталог (независимо от добавления его в MediaStore), но не работает (возвращает ] null
), когда файл находится во внутренней памяти.
- Примечание: пока видеофайл находится в частном хранилище приложения, он не добавляется в MediaStore (поставщик изображений / видеоконтента на устройстве, подключенном к галерее). Только после того, как видео будет перемещено во внешнее хранилище, я добавляю его в MediaStore. Это решение, связанное с продуктом, и я не могу обойти его стороной; если нет способа добавить видео в хранилище мультимедиа так, чтобы оно не было видимым для других приложений ... Интересно, можно ли добавить видео из частного хранилища приложений в хранилище мультимедиа и оставаться закрытым для приложения, но получить все бесплатные услуги "предоставляется хранилищем мультимедиа, например, для создания эскизов.
задан Warlax 1 January 2012 в 16:24
поделиться