言成言成啊 | Kit Chen's Blog

java实现对音频的截取

发布于2020-03-16 18:24:10,更新于2020-07-14 20:57:17,标签:java  文章会持续修订,转载请注明来源地址:https://meethigher.top/blog

今天突然觉得张艺兴的Honey很好听,于是就想做成手机铃声,我又没会员,没法下载,于是从qq上的Mv扒下来了一段,想做成铃声。

奈何网上没有太好的平台,有一些好的平台,但是有收费限制,还有一些免费的平台,由于自身服务器的原因,网速很慢,于是就想用java自己写一个。

无非就是读取字节流,然后输出字节流罢了。

需要注意的换算单位

1byte=8bit

1kbps=1024bps

bps指bits per second,即传输速度,表示为比特/秒

下面上代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
public class MusicSplit {
public static void main(String[] args) throws IOException {
//C:\\Users\\kitchen\\Desktop\\Honey-张艺兴.mp3
FileInputStream fis=new FileInputStream(new File("C:\\Users\\kitchen\\Desktop\\Honey-张艺兴.mp3"));
FileOutputStream fos=new FileOutputStream(new File("C:\\Users\\kitchen\\Desktop\\Honey-张艺兴-00.mp3"));
int start=10;
int stop=20;
int bps=124;
cutMusic(start,stop,bps,fis,fos);
}
public static void cutMusic(int start,int stop,int bps,FileInputStream fis,FileOutputStream fos) throws IOException {
int begin=(start-1)*bps*1024/8;
int end=stop*bps*1024/8;
int len=0,total=0;
byte[] bytes=new byte[1024];
while((len=fis.read(bytes))!=-1) {
total+=len;
if(total<begin)
continue;
if(total>end)
break;
fos.write(bytes, 0, len);
}
}
}
发布:2020-03-16 18:24:10
修改:2020-07-14 20:57:17
链接:https://meethigher.top/blog/2020/music-split/
标签:java 
付款码 打赏 分享
Shift+Ctrl+1 可控制工具栏