Я кодирую в Java для Android.вопрос заключается в том, как получить размер mp3-файла и его длину аудио заранее, чтобы я мог установить панель прогресса / поиска.чтобы ответить на поиск событий.
Ответом может быть простая информация в заголовочном файле или алгоритм.
Я использую медиаплеер Android для потоковой передачи, и единственная проблема заключается в поиске, требующем обеих вышеупомянутых вещей.
Любая помощь приветствуется.
Я также пытался посмотреть вручнуюmp3-файл и получите заголовок для декодирования длины mp3 с этим кодом нуба.
total = ucon.getContentLength(); //ucon is an HTTPURLconnection
is= ucon.getInputStream();
byte[] buffer = new byte[1024];
is.read(buffer , 0, 1024);
int offset = 1024;
int loc = 2000;
//FrameLengthInBytes = 144 * BitRate / SampleRate + Padding
while(loc == 2000 && offset< total)
{
for(int i = 0 ; i <1024 ;i++ )
{
if((int)buffer[i] == 255)
{
if((int)buffer[i+1] >= 224)
{
loc = i+1;
break;
}
}
}
is.read(buffer , 0, 1024);
offset = 1024 + offset;
}
Не удалось найти шаблон, который отмечает заголовок mp3 (11111111 111xxxxx
).Пробовал на разных файлах.Больше ничего не могу найти.
Обновление 2 :
Теперь я знаю, что мне не нужно искать заголовки mp3, кроме заголовков ID3v2.Но все же это делается при потоковой передаче файла и на Android.Я действительно надеюсь, что кто-то поможет, и есть много программ, делающих эти вещи, я удивляюсь, почему я должен был сделать это трудным путем.