收藏 分销(赏)

双声道转为单声道.doc

上传人:仙人****88 文档编号:8657347 上传时间:2025-02-24 格式:DOC 页数:3 大小:4.05KB 下载积分:10 金币
下载 相关 举报
双声道转为单声道.doc_第1页
第1页 / 共3页
双声道转为单声道.doc_第2页
第2页 / 共3页


点击查看更多>>
资源描述
/* * 我真诚地保证: * 我自己独立地完成了整个程序从分析、设计到编码的所有工作。如果在上述过程中,我遇到了什么困难而求教于人,那么,我将在程序实习报告中 * 详细地列举我所遇到的问题,以及别人给我的提示。 在此,我感谢 XXX, …, XXX对我的启发和帮助。下面的报告中,我还会具体地提到 他们在各个方法对我的帮助。 * 我的程序里中凡是引用到其他程序或文档之处, 例如教材、课堂笔记、网上的源代码以及其他参考书上的代码段, 我都已经在程序的注释里很清楚地注明了引用的出处。 * 我从未抄袭过别人的程序,也没有盗用别人的程序,不管是修改式的抄袭还是原封不动的抄袭。 我编写这个程序,从来没有想过要去破坏或妨碍其他计算机系统的正常运转。 * <李宏> */ package aaa; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; import java.util.Scanner; public class StereoToMono { public static void transition1(String sourceFilePath,String newFilePath,int bytes)throws IOException{//第一种转换方法 FileInputStream fileInputStream = new FileInputStream(sourceFilePath); FileOutputStream fileOutputStream = new FileOutputStream(newFilePath); for(int i=0;i<44;i++){ fileOutputStream.write(fileInputStream.read()); } int m=0,data[] = new int[bytes]; while(fileInputStream.available()!=0){ data[m]=fileInputStream.read(); fileOutputStream.write(data[m]); m++; if(m==(bytes/2+1)){ for(int j=0;j<(bytes/2+1);j++){ fileInputStream.read(); fileOutputStream.write(data[j]); } m=0; } } fileOutputStream.flush(); fileInputStream.close(); fileOutputStream.close(); } public static void transition2(String sourceFilePath,String newFilePath,int bytes)throws IOException{//第儿种转换方法 FileInputStream fileInputStream = new FileInputStream(sourceFilePath); FileOutputStream fileOutputStream = new FileOutputStream(newFilePath); int k= (fileInputStream.available()-44)/2; int j=k+36; for(int i=0;i<44;i++){ int l=fileInputStream.read(); switch(i){ case 4: fileOutputStream.write(j&255);break; case 5: fileOutputStream.write((j>>8)&255);break; case 6: fileOutputStream.write((j>>16)&255);break; case 7: fileOutputStream.write(j>>24);break; case 22:fileOutputStream.write(1);break; case 32:fileOutputStream.write(l/2);break; case 40:fileOutputStream.write(k&255);break; case 41:fileOutputStream.write((k>>8)&255);break; case 42:fileOutputStream.write((k>>16)&255);break; case 43:fileOutputStream.write(k>>24);break; default:fileOutputStream.write(l);break; } } int i=0,data[]=new int[bytes]; while(fileInputStream.available()!=0){ data[i]=fileInputStream.read(); fileOutputStream.write(data[i]); i++; if(i==(bytes/2+1)){ for(int n=0;n<(bytes/2+1);n++){ fileInputStream.read(); } i=0; } } fileOutputStream.flush(); fileInputStream.close(); fileOutputStream.close(); } public static void main(String[] args) throws IOException{ Scanner reader1 = new Scanner(System.in); System.out.println("请输入源双声道音频文件路径:"); String string1 = reader1.next(); FileInputStream fileInputStream = new FileInputStream(string1); fileInputStream.skip(22); if(fileInputStream.read()!=2){//判断双声道 System.out.println("你输入的不是双声道音频文件"); fileInputStream.close(); System.exit(0); } fileInputStream.skip(11); int bytes=fileInputStream.read()/8; fileInputStream.close(); Scanner reader2 = new Scanner(System.in); System.out.println("请输入转换双声道之后与sample1.wav文件相似的文件路径:"); String string2 = reader2.next(); Scanner reader3 = new Scanner(System.in); System.out.println("请输入转换双声道之后与sample2.wav文件相似的文件路径:"); String string3 = reader3.next(); transition1(string1,string2,bytes); System.out.println("温馨提示:转换完成了第一种方法......"); transition2(string1,string3,bytes); System.out.println("温馨提示:转换完成了第二种方法......"); System.out.println("温馨提示:转换成功"); } }
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 教育专区 > 小学其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:4009-655-100  投诉/维权电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服