Кто-нибудь знает, как получить длину медиафайла aac (аудиоформат) mp4 (формат файла) в Java?Java - AAC MP4 - Как получить длину медиа?
Любая помощь будет высоко оценена.
Кто-нибудь знает, как получить длину медиафайла aac (аудиоформат) mp4 (формат файла) в Java?Java - AAC MP4 - Как получить длину медиа?
Любая помощь будет высоко оценена.
Вы можете попробовать этот код ...
файл File = новый файл ("filename.mp3"); AudioFileFormat baseFileFormat = new MpegAudioFileReader(). GetAudioFileFormat (файл); Свойства карты = baseFileFormat.properties(); Long duration = (Long) properties.get ("duration");
Вот решение, которое я нашел (используя mp4parser on github):
public static long getAudioLength(byte[] content) throws Exception {
IsoFile isoFile = new IsoFile(new MemoryDataSourceImpl(content));
double lengthInSeconds = (double)isoFile.getMovieBox().getMovieHeaderBox().getDuration()/isoFile.getMovieBox().getMovieHeaderBox().getTimescale();
return (long)lengthInSeconds;
}
Это MP3, AAC не. MpegAudioFileReader предназначен для MP3 – user3489820
JAAD - это AAC с открытым исходным кодом .... google для этого. Возможно, это поможет. – Aditya
На данный момент я застрял с JAAD. Проблема в том, что файл mp4, который я пытаюсь проанализировать, в конце концов имеет примеры таблиц. Это означает, что мне нужен RandomAccessFile для его анализа, но у меня есть ByteArrayInputStream. Итак ... Одним из решений является воссоздание файла в файловой системе (и это плохо для сервера) ... хотя мне не нравится это решение – user3489820