자바, jaudiotagger 를 이용 하여 무 작위 로 MP3 를 작은 세그먼트 로 나 눕 니 다.
2862 단어 Java
제 가 사용 하 는 2.2.3 버 전 은 링크 를 다운로드 합 니 다.
import org.jaudiotagger.audio.mp3.MP3AudioHeader;
import org.jaudiotagger.audio.mp3.MP3File;
다음은 제 예시 코드 입 니 다.
// mp3
File mSourceMp3File = new File("E:\\Temp\\9274.mp3");
MP3File mp3 = new MP3File(mSourceMp3File);
MP3AudioHeader header = (MP3AudioHeader) mp3.getAudioHeader();
long bitRateKbps = header.getBitRateAsNumber();
int length = header.getTrackLength() * 1000 / 2;
System.out.println(" :" + length);
//
long beginTime = 0;
//
long endTime = 0;
long orderNum = 0;
while (endTime < length) {
System.out.println(" " + (orderNum++) + " 。 :" + beginTime);
Random random = new Random();
endTime = (random.nextInt(29) % (10) + 20) * 1000;
if (endTime + beginTime > length) {
endTime = length;
} else {
endTime += beginTime;
}
System.out.println(" -->" + endTime);
// 1KByte/s=8Kbps, bitRate *1024L / 8L / 1000L bps
//
long beginBitRateBpm = (bitRateKbps * 1024L / 8L / 1000L) * beginTime;
//
long firstFrameByte = header.getMp3StartByte();
//
long beginByte = firstFrameByte + beginBitRateBpm;
//
long endByte = beginByte + (bitRateKbps * 1024L / 8L / 1000L) * (endTime - beginTime);
//
String pathname = "e:\\Temp\\" + orderNum + ".mp3";
File dFile = new File(pathname);
RandomAccessFile dRaf = new RandomAccessFile(dFile, "rw");
RandomAccessFile sRaf = new RandomAccessFile(mSourceMp3File, "rw");
// mp3
for (long i = 0; i < firstFrameByte; i++) {
int m = sRaf.read();
dRaf.write(m);
}
//
sRaf.seek(beginByte);
// mp3
for (long i = 0; i <= endByte - beginByte; i++) {
int m = sRaf.read();
dRaf.write(m);
}
sRaf.close();
dRaf.close();
// 100
beginTime = endTime - 100;
}
본문 은 참고 하 였 다https://blog.51cto.com/lmdtx/2054251중의 자원 은 스스로 약간의 변경 을 했다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
JPA + QueryDSL 계층형 댓글, 대댓글 구현(2)이번엔 전편에 이어서 계층형 댓글, 대댓글을 다시 리팩토링해볼 예정이다. 이전 게시글에서는 계층형 댓글, 대댓글을 구현은 되었지만 N+1 문제가 있었다. 이번에는 그 N+1 문제를 해결해 볼 것이다. 위의 로직은 이...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.