@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.