На создания данного инклуда меня подтолкнула Вы должны зарегистрироваться, чтобы видеть ссылки. от Вы должны зарегистрироваться, чтобы видеть ссылки. для расчёта длительности wav-файла, и желание создать функцию для проверки mp3-файла на возможность воспроизведения с помощью клиента counter-strike.
Да, в процессе написания данного инклуда, я посторался избежать объявления каких-либо переменных в функциях. Поэтому, небольшая просьба: если вы будете что-нибудь сюда привносить, посторайтесь поступать также.
Итак.
Версия 0.0.1 Alpha
Добавлено:
- Функции для разбора заголовка mp3-фрейма
- Массивы для нормального отображения некоторых данных.
- Проверить и исправить ошибки.
- Было замечено, что маркер mp3-фрейма может внезапно встретиться в пределах ID3v2 тэга, который как правило, расположен в начале mp3-файла. Нужна функция, которая будет определять размер ID3v2 тэга.
- Также было замечено, что маркер mp3-фрейма может встречаться в странных местах. Короче, надо это проверять.
- Реализовать функции для разбора ID3 и ID3v2 тэгов.
- Реализовать функции для разбора VBR-заголовков.
- При необходимости попытаться реализовать преобразователь кодировки ID3 и ID3v2 тэгов в UTF-8.
для того, чтобы их можно было отображать в кс (Сомневаюсь, что осуществимо) - Реализовать функцию для определения времени проигрывания mp3-файла.
- Реализовать функцию для определения возможности проигрывания данного mp3-файла в CS.
- Реализовать функции для проверки CRC заголовка фрейма.
Пример использования:
[spoiler][pawn]
- #include <amxmodx>
- #include <amxmisc>
- #include <mp3>
- #define PLUGIN "mp3.test"
- #define VERSION "1.0"
- #define AUTHOR "Chuvi"
- public plugin_init() {
- register_plugin(PLUGIN, VERSION, AUTHOR)
- register_srvcmd("mp3_test","mp3_test")
- // Add your code here...
- }
- new mp3_file[33]="sound/test.mp3"
- public find()
- {
- new mp3=fopen(mp3_file,"rb")
- new start
- start=MP3_Frame_Start(mp3)
- server_print("Frame found at %i",start)
- server_print("MPEG version is %i (%s)",MP3_MPEG_Version(mp3,start),MP3_MPEG_Version_Array[MP3_MPEG_Version(mp3,start)])
- server_print("Layer version is %i (%s)",MP3_Layer_Version(mp3,start),MP3_Layer_Version_Array[MP3_Layer_Version(mp3,start)])
- server_print("MP3_Protection_Bit= %i",MP3_Protection_Bit(mp3,start))
- server_print("MP3_Bitrate= %i",MP3_Bitrate(mp3,start))
- server_print("MP3_Sampling_Rate= %i",MP3_Sampling_Rate(mp3,start))
- server_print("MP3_Padding_Bit=%i",MP3_Padding_Bit(mp3,start))
- server_print("MP3_Private_Bit=%i",MP3_Private_Bit(mp3,start))
- server_print("MP3_Channel_Mode=%s",MP3_Channel_Mode_Array[MP3_Channel_Mode(mp3,start)])
- server_print("MP3_Mode_Extension=%s", MP3_Mode_Extension_Array[MP3_Layer_Version(mp3,start)][MP3_Mode_Extension(mp3,start)])
- server_print("MP3_Copyright_Bit=%i",MP3_Copyright_Bit(mp3,start))
- server_print("MP3_Original_Bit=%i",MP3_Original_Bit(mp3,start))
- server_print("MP3_Emphasis=%s^n",MP3_Emphasis_Array[MP3_Emphasis(mp3,start)])
- fclose(mp3)
- }
Если кому интересно покопаться в спецификации mp3:
Вы должны зарегистрироваться, чтобы видеть ссылки.
Вы должны зарегистрироваться, чтобы видеть ссылки.
Вы должны зарегистрироваться, чтобы видеть ссылки.