Java 解码.webm格式不返回任何缓冲区映像
这里的代码编译正确,但我遇到了一个问题,我的BuffereImage数组列表总是空的。老实说,我对ImageIO之类的东西一无所知Java 解码.webm格式不返回任何缓冲区映像,java,arraylist,decode,javax.imageio,webm,Java,Arraylist,Decode,Javax.imageio,Webm,这里的代码编译正确,但我遇到了一个问题,我的BuffereImage数组列表总是空的。老实说,我对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; impo
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;
}
}
首先,不要捕获异常,什么也不做:
catch (Exception e) {}
现在,当捕捉到异常时,它会在没有任何信息的情况下无声地失败
将catch更改为print stacktrace:e.printStackTrace并发布。免责声明:我本人从未测试过有问题的代码。但是 从net.sf.javavp8decoder.imageio.WebPImageReader的源代码来看,它无法解码WebM文件。它是WebP文件
如果您停止接受异常并忽略它,正如@robocoder所建议的那样,您应该得到一个 你确定没有例外吗?ir.getNumImagetrue返回什么值?上面的代码不能作为MVCE使用,因为我们没有您的输入文件。。。你能分享一下吗?