Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
T
tts-client
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
周亚武
tts-client
Commits
d367e215
Commit
d367e215
authored
Aug 23, 2024
by
周亚武
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
修改合并mp3文件规则
parent
6b2f2ce9
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
53 additions
and
18 deletions
+53
-18
src/main/java/com/mortals/xhx/tts/utils/AddMp3Util.java
src/main/java/com/mortals/xhx/tts/utils/AddMp3Util.java
+53
-18
No files found.
src/main/java/com/mortals/xhx/tts/utils/AddMp3Util.java
View file @
d367e215
package
com.mortals.xhx.tts.utils
;
import
java.io.File
;
import
java.io.IOException
;
import
javax.sound.sampled.*
;
import
java.io.*
;
import
java.nio.ByteBuffer
;
import
java.util.List
;
/**
...
...
@@ -10,26 +11,60 @@ import java.util.List;
*/
public
class
AddMp3Util
{
public
static
String
mergeMp3s
(
List
<
String
>
inputFiles
)
{
String
luJing
=
"/tmp/"
;
public
static
String
mergeMp3s
(
List
<
String
>
inputFiles
)
throws
IOException
,
UnsupportedAudioFileException
,
LineUnavailableException
{
String
outputFile
=
"/tmp/"
;
if
(
System
.
getProperty
(
"os.name"
).
startsWith
(
"Windows"
)){
//windows电脑测试路径
luJing
=
"F:\\\\"
;
outputFile
=
"F:\\\\"
;
}
File
f
=
new
File
(
luJing
);
f
.
mkdirs
();
//生成处理后的文件
String
outputFile
=
luJing
+
"new.mp3"
;
ProcessBuilder
pb
=
new
ProcessBuilder
(
"sox"
);
pb
.
command
().
addAll
(
inputFiles
);
pb
.
command
().
add
(
outputFile
);
try
{
Process
process
=
pb
.
start
();
process
.
waitFor
();
}
catch
(
IOException
|
InterruptedException
e
)
{
e
.
printStackTrace
();
File
file
=
new
File
(
outputFile
+
"new.mp3"
);
if
(
file
.
exists
())
{
file
.
delete
();
}
AudioFormat
format
=
null
;
TargetDataLine
targetLine
=
null
;
SourceDataLine
sourceLine
=
null
;
// 获取混音所需的格式
for
(
String
inputFile
:
inputFiles
)
{
AudioInputStream
audioInputStream
=
AudioSystem
.
getAudioInputStream
(
new
File
(
inputFile
));
if
(
format
==
null
)
{
format
=
audioInputStream
.
getFormat
();
}
// 处理其他文件...
}
// 打开目标数据行用于输出
DataLine
.
Info
info
=
new
DataLine
.
Info
(
TargetDataLine
.
class
,
format
);
targetLine
=
(
TargetDataLine
)
AudioSystem
.
getLine
(
info
);
targetLine
.
open
(
format
);
targetLine
.
start
();
// 打开源数据行用于输入
info
=
new
DataLine
.
Info
(
SourceDataLine
.
class
,
format
);
sourceLine
=
(
SourceDataLine
)
AudioSystem
.
getLine
(
info
);
sourceLine
.
open
(
format
);
sourceLine
.
start
();
// 将源数据行连接到目标数据行
AudioInputStream
inputStream
=
new
AudioInputStream
(
new
SequenceInputStream
(
new
FileInputStream
(
inputFiles
.
get
(
0
)),
new
FileInputStream
(
inputFiles
.
get
(
1
))),
format
,
AudioSystem
.
NOT_SPECIFIED
);
// 将inputStream的内容复制到targetLine
AudioSystem
.
write
(
inputStream
,
AudioFileFormat
.
Type
.
WAVE
,
new
File
(
outputFile
));
// 关闭线路和流
targetLine
.
stop
();
targetLine
.
close
();
sourceLine
.
stop
();
sourceLine
.
close
();
inputStream
.
close
();
return
outputFile
;
}
}
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment