22
33public class SilkCodec {
44
5+ /** 时长限制:60秒 */
6+ public static final long MAX_DURATION_MS = 60_000L ;
7+
58 static {
69 System .loadLibrary ("silk" );
710 }
@@ -10,7 +13,7 @@ public class SilkCodec {
1013 * 获取文件实际类型(通过文件头检测)
1114 *
1215 * @param filePath 文件路径
13- * @return 文件类型常量 0 = 未知类型 1 = Silk 2 = MP3 3 = WAV 4 = FLAC 5 = OGG 6 = PCM 7 = M4A 8 = AAC
16+ * @return 文件类型常量 0 = 未知类型 1 = Silk 2 = MP3 3 = WAV 4 = FLAC 5 = OGG 6 = PCM 7 = M4A 8 = MP4
1417 */
1518 public native int getFileType (String filePath );
1619
@@ -21,7 +24,7 @@ public class SilkCodec {
2124 *
2225 * @param mp3Path 输入 MP3 文件路径
2326 * @param silkPath 输出 Silk 文件路径
24- * @param hz Silk 编码内部采样率 (8000/12000/16000/24000/32000/44100/48000)
27+ * @param hz Silk 编码内部采样率
2528 * @return 0=成功, 负数=错误码
2629 */
2730 public native int mp3ToSilk (String mp3Path , String silkPath , int hz );
@@ -61,15 +64,15 @@ public class SilkCodec {
6164 *
6265 * @param pcmPath 输入 PCM 文件路径
6366 * @param silkPath 输出 Silk 文件路径
64- * @param hz Silk 编码内部采样率 (8000/12000/16000/24000/32000/44100/48000)
67+ * @param hz Silk 编码内部采样率
6568 * @param pcmHz 输入 PCM 文件采样率
6669 * @param channels 输入 PCM 文件声道数 (1=单声道, 2=立体声)
6770 * @return 0=成功, 负数=错误码
6871 */
6972 public native int pcmToSilk (String pcmPath , String silkPath , int hz , int pcmHz , int channels );
7073
7174 /**
72- * 自动识别音频格式并转 Silk 支持格式: MP3, WAV, FLAC, OGG, M4A, AAC, AMR
75+ * 自动识别音频格式并转 Silk 支持格式: MP3, WAV, FLAC, OGG, M4A, MP4
7376 *
7477 * @param audioPath 输入音频文件路径
7578 * @param silkPath 输出 Silk 文件路径
@@ -90,7 +93,7 @@ public class SilkCodec {
9093 */
9194 public native int silkToMp3 (String silkPath , String mp3Path , int hz );
9295
93- // ==================== Silk 转 PCM ====================
96+ // ==================== 转 PCM ====================
9497
9598 /**
9699 * Silk 转 PCM
@@ -102,8 +105,6 @@ public class SilkCodec {
102105 */
103106 public native int silkToPcm (String silkPath , String pcmPath , int hz );
104107
105- // ==================== 转 PCM ====================
106-
107108 /**
108109 * MP3 转 PCM
109110 *
@@ -158,17 +159,13 @@ public class SilkCodec {
158159 public native long getDuration (String filePath );
159160
160161 /**
161- * 获取限制后的音频时长(毫秒) 如果时长超过 60 秒,则强制返回 60000 毫秒
162+ * 获取限制后的音频时长(毫秒)。若超过 {@link #MAX_DURATION_MS} 则截断。
162163 *
163164 * @param filePath 音频文件路径
164- * @return 时长(毫秒),最高 60000
165+ * @return 时长(毫秒),最高 {@value #MAX_DURATION_MS}
165166 */
166- public long getDurations (String filePath ) {
167+ public long getDurationLimited (String filePath ) {
167168 long duration = getDuration (filePath );
168- // 60秒 = 60 * 1000 毫秒
169- if (duration > 60000 ) {
170- return 60000 ;
171- }
172- return duration ;
169+ return duration > MAX_DURATION_MS ? MAX_DURATION_MS : duration ;
173170 }
174171}
0 commit comments