黑马程序员技术交流社区

标题: 我想把张孝祥老师的交通灯管理视频合成一个,然后 [打印本页]

作者: fei_xiong    时间: 2014-4-28 15:34
标题: 我想把张孝祥老师的交通灯管理视频合成一个,然后
本帖最后由 fei_xiong 于 2014-4-29 11:36 编辑

我想把张孝祥老师的交通灯管理视频合成一个,然后就写了个程序试试,结果大小151M对了,但是只能播放第一集的内容,求原因啊
  1. import java.io.FileInputStream;
  2. import java.io.FileOutputStream;
  3. import java.io.IOException;

  4. public class HeBing {

  5.         public static void main(String[] args) throws IOException {
  6.                 String fileName;
  7.                 FileInputStream fis = null;
  8.                 FileOutputStream fos = new FileOutputStream("d:\\交通灯.avi");

  9.                 byte[] b = new byte[1024];
  10.                 int len = 0 ;
  11.                 for (int x = 1; x <= 11; x++) {
  12.                         if (x <= 9 )
  13.                                 fileName = "d:\\0" + x + ".avi";
  14.                         else         
  15.                                 fileName="d:\\" + x + ".avi";
  16.                         
  17.                         fis = new FileInputStream(fileName);
  18.                         
  19.                         while ((len = fis.read(b))!=-1) {
  20.                                 fos.write(b,0,len);
  21.                         }
  22.                         System.out.println(fileName+"完成");
  23.                 }
  24.                
  25.                 fis.close();
  26.                 fos.close();
  27.         }

  28. }
复制代码

作者: 你为谁归来    时间: 2014-4-28 16:19
每个是视频都有开头和结尾让视频播放器来解析。你这个代码只是把一堆视频的转换内容拼接在一起,当视频播放器读了第一个后读不到第二个视频的开头。
作者: 余琪琪    时间: 2014-4-28 16:21
本帖最后由 余琪琪 于 2014-4-28 16:23 编辑

把字节&Oxff,防止第一个读取的字节为-1
作者: SyouRai_Tsk    时间: 2014-4-28 20:31
在while语句结束后都fos.flush().应该能解决这个问题
作者: fei_xiong    时间: 2014-4-28 21:24
每个是视频都有开头和结尾让视频播放器来解析。你这个代码只是把一堆视频的转换内容拼接在一起,当视频播放器读了第一个后读不到第二个视频的开头。

明白了




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2