A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 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. }
复制代码

4 个回复

倒序浏览
每个是视频都有开头和结尾让视频播放器来解析。你这个代码只是把一堆视频的转换内容拼接在一起,当视频播放器读了第一个后读不到第二个视频的开头。
回复 使用道具 举报
本帖最后由 余琪琪 于 2014-4-28 16:23 编辑

把字节&Oxff,防止第一个读取的字节为-1
回复 使用道具 举报
在while语句结束后都fos.flush().应该能解决这个问题
回复 使用道具 举报
每个是视频都有开头和结尾让视频播放器来解析。你这个代码只是把一堆视频的转换内容拼接在一起,当视频播放器读了第一个后读不到第二个视频的开头。

明白了
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马