cabeçalhp de arquivos

Opa,
Preciso pegar informações de um audio, uma delas é a sua duração, e depois de muita pesquisa vi que não é tão facil assim, então me indicaram usar o cabeçalho arquivo pois, la fica guardada todas as informações necessarias de um arquivo.
Alguem teria algum tipo de experiencia para discutirmos esta forma de se tirar informações de um arquivo?
Valeu!!!

Antes de mais nada, qual é o tipo de arquivo que você quer manipular? mid, wav, mp3, outro ou todos eles?

Cada tipo de arquvo utiliza um header diferente. O mp3 por ex, usa o http://en.wikipedia.org/wiki/ID3. É só ler o arquivo e interpretar os bytes de acordo com a especificação.

então, preciso contar com todas as possibilidades de extensão, mas preciso apenas de uma informação do cabeçalho, o tempo de duração, não sei se esta é a melhor forma…
É correto afirmar que todo arquivo de audio terá o seu tempo informado no cabeçalho?
Existe alguma outra forma de pegar este valor?
Estou desenvolvendo para web.
Valeu!!!

Se você quer um meio genérico para qualquer tipo de arquivo, acho que o jeito é procurar algum tipo de biblioteca que trate arquivos de audio. Deve existir várias por aí, mas eu não conheço nenhuma.

Este é o problema, encontrei apenas uma biblioteca que possa me auxiliar nesta situação, mas terei que criar um monte de códigos para chegar neste resultado, não que eu esteja com preguiça, é que como é web, tenho receio que isso prejudique a performance. Por isso estou tentando uma outra saida!

De forma genérica, você tem 3 opções para saber a duração (que eu consigo imaginar):

  • Utilizar uma biblioteca e fazer o que ela pede e aceitar as limitações de performance;
  • Ler as informações sobre duração gravadas no arquivo (isso vai variar parar cada tipo de arquivo, se é que todos tem);
  • Descobrir qual o tamanho de cada segundo de àudio para o arquivo tratado, e calcular a partir do tamanho do arquivo (também vai variar de acordo com o tipo do arquivo);

Na minha opinião, se a performance for crucial, estude o formato dos arquivos e implemente um leitor. Se não, utilize uma biblioteca mesmo.

Pelo que vejo não tenho muita opção, vou continuar minhas pesquisas, assim que achar a solução posto o fonte. Valeu!

news on this?