Декодирование.webm формат не возвращает никаких BufferedImages
Мой код здесь компилируется правильно, но я сталкиваюсь с проблемой, что мой ArrayList из BufferedImages всегда пуст. Честно говоря, у меня нет никаких знаний относительно ImageIO или лайков!
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
import java.util.ArrayList;
import javax.imageio.IIOException;
import javax.imageio.ImageIO;
import javax.imageio.ImageReader;
import net.sf.javavp8decoder.imageio.WebPImageReader;
import net.sf.javavp8decoder.imageio.WebPImageReaderSpi;
class MyProj{
public static void main(String[] args) throws IOException{
System.out.println("Main");
ArrayList<BufferedImage> collectedImg=getFrames();
}
static ArrayList<BufferedImage> getFrames() throws IIOException{
File MyWebM= new File("/users/case3/mcclusm4/workspace/LineTech/src/goal.webm");
ArrayList<BufferedImage> frames = new ArrayList<BufferedImage>();
try{
ImageReader ir = new WebPImageReader(new WebPImageReaderSpi());
ir.setInput(ImageIO.createImageInputStream(MyWebM));
for(int i = 0; i < ir.getNumImages(true); i++)
frames.add(ir.read(i));
}catch(IOException e){}
return frames;
}
}
2 ответа
Прежде всего не поймать Exception
и ничего не делать
catch (Exception e) {}
Теперь, когда исключение ловится, оно молча терпит неудачу без какой-либо информации.
Изменить улов на печать трассировки стека: e.printStackTrace()
и отправьте это.
Отказ от ответственности: я никогда не проверял рассматриваемый код самостоятельно. Но...
Смотря на исходный код net.sf.javavp8decoder.imageio.WebPImageReader
он не может декодировать WebM
файлы. Поддерживает только один кадр WebP
файлы.
Если вы перестанете глотать исключение и игнорировать его, как предлагает @robocoder, вы должны получить IIOException
с сообщением"Bad WEBP signature!"
,