Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/389.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 用xuggle提取90秒_Java_Xuggle - Fatal编程技术网

Java 用xuggle提取90秒

Java 用xuggle提取90秒,java,xuggle,Java,Xuggle,我使用Xugle编写了一些代码,从mp4中提取90秒。 问题是我正在生产2个文件只是为了完成这一点 有没有更好的方法让我这么做? 这是我的密码: IMediaReader reader = ToolFactory.makeReader(fileName); CutChecker cutChecker = new CutChecker(); reader.addListener(cutChecker);

我使用Xugle编写了一些代码,从mp4中提取90秒。 问题是我正在生产2个文件只是为了完成这一点

有没有更好的方法让我这么做? 这是我的密码:

IMediaReader reader = ToolFactory.makeReader(fileName);
                    CutChecker cutChecker = new CutChecker();
                    reader.addListener(cutChecker);
                    IMediaWriter writer = ToolFactory.makeWriter("preview_" + fileName, reader);
                    cutChecker.addListener(writer);
                    Boolean updated = false;
                    try{
                        while (reader.readPacket() == null) {
                            if ((cutChecker.timeInMilisec >= 90 * 1000000) && (!updated)) {
                                cutChecker.removeListener(writer);
                                writer.close();
                                writer = ToolFactory.makeWriter("_original" +fileName, reader);
                                cutChecker.addListener(writer);
                                updated = true;
                            }
                        }
                    }catch(RuntimeException re){
                        logger.info(re);
                        continue;
                    }
这是剪贴簿:

public class CutChecker extends MediaToolAdapter
{
/** {@inheritDoc} */

    public Long timeInMilisec = (long) 0;

    @Override
    public void onVideoPicture(IVideoPictureEvent event)
      {
    timeInMilisec = event.getTimeStamp();
    super.onVideoPicture(event);
    }
    }

“2个文件”是什么意思?如果您指的是两个Java类,那么没有什么错,这是一个好的做法。一个是原始文件的副本,另一个是提取的90秒。好吧,你肯定需要2个文件来完成这个任务。但您不需要下载整个原始文件。如果我没记错的话,Xugler可以通过http和其他协议处理文件。