实现音乐串烧_交替播放

原创
2019/04/14 23:10
阅读数 47
public class Music_shi {
    public static void main(String[] args) throws IOException {
        //读取文件
        BufferedInputStream bis = new BufferedInputStream( new FileInputStream( "G:\\qiao\\music\\阿冗 - 太多 (cover:陈冠蒲).mp3" ) );
        BufferedInputStream bis1 = new BufferedInputStream( new FileInputStream( "G:\\qiao\\music\\王力宏 - 改变自己.mp3" ) );
        //写出文件
        BufferedOutputStream bos = new BufferedOutputStream( new FileOutputStream( "G:\\qiao\\music\\a\\ab.mp3",true ));
        int len;
        //用于记录第一首歌累计读取字节的大小
        int sum=0;
        //用于记录第二首歌累计读取字节的大小
        int sum1=0;
        //用于记录合并时歌累计写出字节的大小
        int su=0;
        int t1=320*58*1024/8;
        int t2=320*120*1024/8;
        //定义一个标记,用于两首歌交替拼接
        boolean flag=true;
        byte[] bytes = new byte[4096*32];
        while (true){
            if (su>(t1+t2)){
                break;
            }
            if (flag){
                if ((len=bis.read(bytes))!=-1){
                    sum+=len;
                    if (sum<t1){
                        flag=!flag;
                        continue;
                    }
                    if (sum>t2){
                        bos.flush();
                        break;
                    }
                    bos.write( bytes,0,len );
                    su+=len;
                }
                flag=!flag;
            }else{
                if ((len=bis1.read(bytes))!=-1){
                    sum1+=len;
                    if (sum1<t1){
                        flag=!flag;
                        continue;
                    }
                    if (sum1>t2){
                        bos.flush();
                        break;
                    }
                    bos.write( bytes,0,len );
                    su+=len;
                }
                flag=!flag;
            }
        }
        bos.close();
        bis1.close();
        bis.close();
    }
}

 

展开阅读全文
加载中

作者的其它热门文章

打赏
0
0 收藏
分享
打赏
0 评论
0 收藏
0
分享
返回顶部
顶部