Спецификация файла Audible Audio (.aa)? - PullRequest
2 голосов
/ 21 февраля 2009

Кто-нибудь знает хороший ресурс по спецификации файла Audible Audio (.aa)?

Я пытаюсь написать программу, которая может использовать их, если никто не знает о ресурсе, какие-нибудь советы по реверс-инжинирингу спецификаций для себя? Я открыл его в шестнадцатеричном редакторе и ковырялся в нем, похож на MP3, но с большим количеством информации заголовка.

Ответы [ 3 ]

4 голосов
/ 03 октября 2013

Этот сайт предоставляет дополнительную информацию о том, где находятся определенные фрагменты данных в файле .aa.

http://wiki.multimedia.cx/index.php?title=Audible_Audio

3 голосов
/ 15 августа 2010

Я провел некоторое исследование заголовка Audible, чтобы создать плеер для автомагнитолы / компьютера. По сути, в начале файла есть блок из 3700 символов, который охватывает ряд интересующих областей, таких как «Заголовок», «Автор», «Рассказчик» и т. Д. У меня есть ограниченный код синтаксического анализа в C # для отображения некоторой базовой информации из .aa файл. следующим образом:

   private void ParseFields(string fileName)
    {
        string aaHeader;
        string tryDate;
        if (fileName == "") return;

        using (StreamReader sr = new StreamReader(fileName))
        {
            char[] buff = new char[3700];
            sr.Read(buff, 0, buff.Length);
            aaHeader = new string(buff);
        }
        try
        {
            _author = GetParsedItem(aaHeader, "author");
        }
        catch
        {
            _author = "?";
        }
        try
        {
            _title = GetParsedItem(aaHeader, "short_title");
        }
        catch
        {
            _title = "???";
        }
        try
        {
            _narrator = GetParsedItem(aaHeader, "narrator");
        }
        catch
        {
            _narrator = "?";
        }
        try
        {
            _description = GetParsedItem(aaHeader, "description");
        }
        catch
        {
            _description = "???";
        }
        try
        {
            _longDescription = GetParsedItem(aaHeader, "long_description");
        }
        catch
        {
            _longDescription = "";
        }
        try
        {
            tryDate = GetParsedItem(aaHeader, "pubdate");
            if (tryDate != "")
                _pubDate = Convert.ToDateTime(GetParsedItem(aaHeader, "pubdate"));
            else
                _pubDate = DateTime.Today;
        }
        catch
        {
            _pubDate = DateTime.Today; 
        }
    }
    private string GetParsedItem(string buffer, string fieldName)
    {
        if (buffer.Contains(fieldName))
        {
            int pos = buffer.IndexOf(fieldName);
            pos += fieldName.Length;
            int posEnd = buffer.IndexOf('\0',pos);
            //if the value for the field is empty, skip it and look for another
            if (pos == posEnd)
            {
                pos = buffer.IndexOf(fieldName, posEnd);
                pos += fieldName.Length;
                posEnd = buffer.IndexOf('\0', pos);
            }
            return buffer.Substring(pos, posEnd - pos);
        }
        else
            return "(not found - " + fieldName + ")";
    }
1 голос
/ 16 июня 2010

Я думаю, что нет спецификаций. Взгляните на Википедия / Audible.com :

цитата:

[...]
Audible introduced one of the first digital audio players in 1997.
The following year it published a Web site from which audio files in its
proprietary .aa format could be downloaded. Audible holds a number of patents
in this area.
[...]

Резюме: права собственности / патенты

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...