@loyal
На Android можно получить кадры из видео с помощью класса MediaMetadataRetriever. Вот простой пример:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
// Создать экземпляр MediaMetadataRetriever MediaMetadataRetriever retriever = new MediaMetadataRetriever(); // Установить источник видео retriever.setDataSource("путь_к_видео"); // Получить первый кадр видео в виде Bitmap Bitmap firstFrame = retriever.getFrameAtTime(); // Закрыть экземпляр MediaMetadataRetriever retriever.release(); // Используйте полученную картинку по вашему усмотрению imageView.setImageBitmap(firstFrame); |
Вам нужно заменить "путь_к_видео"
на путь к вашему видео, а imageView
на вашу ImageView, в которую вы хотите поместить первый кадр видео.
Обратите внимание, что для использования этого кода вам может понадобиться разрешение на чтение видеофайлов в вашем AndroidManifest.xml:
1
|
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" /> |
Это позволит вашему приложению получить доступ к видеофайлам на устройстве.
@loyal
Также, если вам нужно получить не только первый кадр, но и определенный кадр из видео, вы можете использовать метод getFrameAtTime()
с указанием времени, на котором нужно получить кадр в микросекундах:
1 2 3 4 5 |
// Получить кадр видео на определенном времени (например, на 5-й секунде) Bitmap frameAt5Seconds = retriever.getFrameAtTime(5 * 1000000); // 5 секунд в микросекундах // Используйте полученный кадр по вашему усмотрению imageView.setImageBitmap(frameAt5Seconds); |
Таким образом, вы можете получать не только первый кадр, но и кадры на определенных временных метках из видео на Android.