録音中にオーディオを一時停止する必要があります。そのため、mP4 パーサーを使用して .3GPP 形式のオーディオをマージしています。オーディオが 1 秒未満の場合、マージされます。ただし、オーディオ サイズが 1 秒を超えると、マージされません。これが私のコードです:
private void mergeFiles(File filePath, ArrayList audioFiles) throws IOException {
int count = audioFiles.size();
Movie[] inMovies = new Movie[count];
for (int i = 0; i < count; i++) {
Movie movie = MovieCreator.build(new FileDataSourceImpl(file));
inMovies[i] = movie;
}
List<Track> movieTracks = new LinkedList<Track>();
for (Movie m : inMovies) {
for (Track t : m.getTracks()) {
movieTracks.add(t);
}
}
Movie finalMovie = new Movie();
if (movieTracks.size() > 0)
finalMovie.addTrack(new AppendTrack(movieTracks.toArray(new Track[movieTracks.size()])));
Container container = new DefaultMp4Builder().build(finalMovie);
File anotherFile = new File(getFinalFileName());
final FileOutputStream fos = new FileOutputStream(anotherFile);
final WritableByteChannel bb = Channels.newChannel(fos);
container.writeContainer(bb);
fos.close();
for (int i = 0; i < count; i++) {
File arrayFile = new File(mAudioFiles.get(i));
if (arrayFile.exists())
arrayFile.delete();
}
}
誰かが同様の状況に直面していますか..?