Как каждый делает потоковое mp3? - PullRequest
0 голосов
/ 30 декабря 2010

Я кодирую в 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.Я действительно надеюсь, что кто-то поможет, и есть много программ, делающих эти вещи, я удивляюсь, почему я должен был сделать это трудным путем.

1 Ответ

0 голосов
/ 01 января 2011

Ну, я никогда не знал о системе тегов ID3.

...