Pergunta

Eu preciso para obter informações taxa de bits de arquivos de áudio, para alguma função AudioFileGetProperty razão com kAudioFilePropertyBitRate constante sempre retorna 0 para mim. O mesmo com kAudioFilePropertyInfoDictionary, o does not dicionário resultando conter informações bitrate. Gostaria de tentar obter manualy isso a partir de dados brutos em caso de mp3, mas eu preciso para apoiar diferentes formatos de arquivo, tais como m4a e outros. Existe alguma outra maneira de fazer isso?

Foi útil?

Solução

Se você está lidando com um arquivo, você pode sempre tentar usar a API do Spotlight metadados. Por exemplo, supondo que você tem o caminho para o arquivo de áudio como um NSString ou CFStringRef chamado 'caminho':

MDItemRef item = MDItemCreate( kCFAllocatorDefault, path );
CFNumberRef audioBitrate = MDItemCopyAttribute( item, kMDItemAudioBitrate );
CFNumberRef totalBitrate = MDItemCopyAttribute( item, kMDItemTotalBitrate );
CFRelease( item );

Não é o ideal, mas pelo menos poderia fornecer-lhe mais algumas informações de fundo para sugerir por que o outro API não está funcionando.

A única outra coisa que eu posso pensar: kAudioFilePropertyBitRate só é definido no OS X 10.5. Se você estiver executando em 10.4 ou anterior, seu código ainda será executado, mas o quadro AudioFile não vai saber sobre a propriedade bitrate em tudo, e, portanto, provável retornar zero.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top