Русское сообщество по скриптингу

Инклуд для разбора mp3-файлов. Версия 0.0.1 Alpha.

Статьи или фрагменты кода для новичков и уже опытных скриптеров по AMXX.

Модератор: Chuvi

Правила форума
1. Запрещено материться и оскорблять других участников форума.
2. Запрещен флуд, оффтоп, дабл постинг во всех разделах форума, кроме раздела "Болтовня".
3. Запрещено взламывать сайт/форум или наносить любой вред проекту.
4. Запрещено рекламировать другие ресурсы.
5. Запрещено создавать темы без информативного названия. Название темы должно отображать ее смысл.

В данном разделе форума разрешено создавать темы, касающие только обучающему материалу по AMX Mod X.

Инклуд для разбора mp3-файлов. Версия 0.0.1 Alpha.

Сообщение Chuvi » 10 июл 2012, 03:07

Собственно, не знаю, в какой раздел это поместить. Это вроде как и не "болтовня", и не готовый плагин, и пока ещё не совсем "Статья/фрагмент кода". Ладно, пусть будет в болтовне. Хотя, имхо, это не самая разумная мысль.

На создания данного инклуда меня подтолкнула Вы должны зарегистрироваться, чтобы видеть ссылки. от Вы должны зарегистрироваться, чтобы видеть ссылки. для расчёта длительности wav-файла, и желание создать функцию для проверки mp3-файла на возможность воспроизведения с помощью клиента counter-strike.

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


Итак.
Версия 0.0.1 Alpha
Добавлено:
  1. Функции для разбора заголовка mp3-фрейма
  2. Массивы для нормального отображения некоторых данных.
Необходимо сделать:
  1. Проверить и исправить ошибки.
  2. Было замечено, что маркер mp3-фрейма может внезапно встретиться в пределах ID3v2 тэга, который как правило, расположен в начале mp3-файла. Нужна функция, которая будет определять размер ID3v2 тэга.
  3. Также было замечено, что маркер mp3-фрейма может встречаться в странных местах. Короче, надо это проверять. :(
  4. Реализовать функции для разбора ID3 и ID3v2 тэгов.
  5. Реализовать функции для разбора VBR-заголовков.
  6. При необходимости попытаться реализовать преобразователь кодировки ID3 и ID3v2 тэгов в UTF-8.
    для того, чтобы их можно было отображать в кс (Сомневаюсь, что осуществимо)
  7. Реализовать функцию для определения времени проигрывания mp3-файла.
  8. Реализовать функцию для определения возможности проигрывания данного mp3-файла в CS.
  9. Реализовать функции для проверки CRC заголовка фрейма.

Пример использования:
[spoiler][pawn]
  1. #include <amxmodx>

  2. #include <amxmisc>

  3. #include <mp3>

  4.  

  5. #define PLUGIN "mp3.test"

  6. #define VERSION "1.0"

  7. #define AUTHOR "Chuvi"

  8.  

  9.  

  10. public plugin_init() {

  11.         register_plugin(PLUGIN, VERSION, AUTHOR)

  12.         register_srvcmd("mp3_test","mp3_test")

  13.         // Add your code here...

  14. }

  15. new mp3_file[33]="sound/test.mp3"

  16.                        

  17.        

  18. public find()

  19. {

  20.         new mp3=fopen(mp3_file,"rb")

  21.         new start

  22.         start=MP3_Frame_Start(mp3)     

  23.         server_print("Frame found at %i",start)

  24.         server_print("MPEG version is %i (%s)",MP3_MPEG_Version(mp3,start),MP3_MPEG_Version_Array[MP3_MPEG_Version(mp3,start)])

  25.         server_print("Layer version is %i (%s)",MP3_Layer_Version(mp3,start),MP3_Layer_Version_Array[MP3_Layer_Version(mp3,start)])

  26.         server_print("MP3_Protection_Bit= %i",MP3_Protection_Bit(mp3,start))

  27.         server_print("MP3_Bitrate= %i",MP3_Bitrate(mp3,start))

  28.         server_print("MP3_Sampling_Rate= %i",MP3_Sampling_Rate(mp3,start))

  29.         server_print("MP3_Padding_Bit=%i",MP3_Padding_Bit(mp3,start))

  30.         server_print("MP3_Private_Bit=%i",MP3_Private_Bit(mp3,start))

  31.         server_print("MP3_Channel_Mode=%s",MP3_Channel_Mode_Array[MP3_Channel_Mode(mp3,start)])

  32.         server_print("MP3_Mode_Extension=%s", MP3_Mode_Extension_Array[MP3_Layer_Version(mp3,start)][MP3_Mode_Extension(mp3,start)])

  33.         server_print("MP3_Copyright_Bit=%i",MP3_Copyright_Bit(mp3,start))

  34.         server_print("MP3_Original_Bit=%i",MP3_Original_Bit(mp3,start))

  35.         server_print("MP3_Emphasis=%s^n",MP3_Emphasis_Array[MP3_Emphasis(mp3,start)])

  36.         fclose(mp3)

  37. }

  38.  

  39.  
[/pawn][/spoiler]

Если кому интересно покопаться в спецификации mp3:
Вы должны зарегистрироваться, чтобы видеть ссылки.
Вы должны зарегистрироваться, чтобы видеть ссылки.
Вы должны зарегистрироваться, чтобы видеть ссылки.
Последний раз редактировалось Chuvi 11 июл 2012, 11:04, всего редактировалось 1 раз.
Плагинами на заказ не занимаюсь.
Своих дел хватает.
Аватара пользователя
Chuvi
Модератор
 
Сообщения: 2253
Зарегистрирован: 24 ноя 2011, 08:03
Благодарил (а): 127 раз.
Поблагодарили: 562 раз.

Re: Инклуд для разбора mp3-файлов. Версия 0.0.1 Alpha.

Сообщение Chuvi » 10 июл 2012, 04:46

Скачало 3 человека, не отетил никто. Через сколько этот недоделанный инклуд ожидать выложенным на других сайтах схожей тематики? :)
А? :):)
Плагинами на заказ не занимаюсь.
Своих дел хватает.
Аватара пользователя
Chuvi
Модератор
 
Сообщения: 2253
Зарегистрирован: 24 ноя 2011, 08:03
Благодарил (а): 127 раз.
Поблагодарили: 562 раз.

Re: Инклуд для разбора mp3-файлов. Версия 0.0.1 Alpha.

Сообщение KORD_12.7 » 10 июл 2012, 05:28


_http://aghl.ru/ - Half-Life и Adrenaline Gamer: за пределами возможного
Аватара пользователя
KORD_12.7
Скриптер
 
Сообщения: 298
Зарегистрирован: 28 сен 2009, 10:14
Откуда: Владивосток
Благодарил (а): 142 раз.
Поблагодарили: 257 раз.
Опыт программирования: Больше трех лет
Языки программирования: Half-Life
Opposing Force
Adrenaline Gamer
Counter-Strike

Re: Инклуд для разбора mp3-файлов. Версия 0.0.1 Alpha.

Сообщение Chuvi » 10 июл 2012, 07:05

KORD_12.7, эм... Походу да. Только свой с блэкджеком и... ну да вы поняли. :)
Только я ещё хочу сделать разбор ID3, так что не совсем аналог...
Плагинами на заказ не занимаюсь.
Своих дел хватает.
Аватара пользователя
Chuvi
Модератор
 
Сообщения: 2253
Зарегистрирован: 24 ноя 2011, 08:03
Благодарил (а): 127 раз.
Поблагодарили: 562 раз.

Re: Инклуд для разбора mp3-файлов. Версия 0.0.1 Alpha.

Сообщение Plrip » 10 июл 2012, 08:43

смысл инклуда?

Status:
Аватара пользователя
Plrip
Скриптер
 
Сообщения: 2903
Зарегистрирован: 03 дек 2011, 19:33
Откуда: Ukraine
Благодарил (а): 237 раз.
Поблагодарили: 603 раз.
Языки программирования: Counter-Strike 1.6
X-Ray
Killing-Floor [low]

Re: Инклуд для разбора mp3-файлов. Версия 0.0.1 Alpha.

Сообщение soffrick » 10 июл 2012, 08:46

Слушать мр3 в кс :-!
Аватара пользователя
soffrick
 
Сообщения: 403
Зарегистрирован: 18 мар 2012, 15:23
Забанен
Благодарил (а): 25 раз.
Поблагодарили: 59 раз.

Re: Инклуд для разбора mp3-файлов. Версия 0.0.1 Alpha.

Сообщение Plrip » 10 июл 2012, 08:47

soffrick, его и так можно слушать :-\

Status:
Аватара пользователя
Plrip
Скриптер
 
Сообщения: 2903
Зарегистрирован: 03 дек 2011, 19:33
Откуда: Ukraine
Благодарил (а): 237 раз.
Поблагодарили: 603 раз.
Языки программирования: Counter-Strike 1.6
X-Ray
Killing-Floor [low]

Re: Инклуд для разбора mp3-файлов. Версия 0.0.1 Alpha.

Сообщение soffrick » 10 июл 2012, 08:50

Plrip писал(а):soffrick, его и так можно слушать :-\

И я про тоже. В кс нужно убивать, а не музыку слушать 8-)
[spoiler]Вроде wav меньше весит, чем мр3[/spoiler]
Последний раз редактировалось soffrick 10 июл 2012, 14:08, всего редактировалось 1 раз.
Аватара пользователя
soffrick
 
Сообщения: 403
Зарегистрирован: 18 мар 2012, 15:23
Забанен
Благодарил (а): 25 раз.
Поблагодарили: 59 раз.

Re: Инклуд для разбора mp3-файлов. Версия 0.0.1 Alpha.

Сообщение Chuvi » 10 июл 2012, 12:30

Кто смотрел мою тему и сломал её? :)
А точнее кто перетащил её этот раздел?

Plrip писал(а):смысл инклуда?

Простите сэр, забыл поинтересоваться, нужен ли он Вам. В следующий раз непременно спрошу.

soffrick писал(а):Слушать мр3 в кс :-!

Plrip писал(а):soffrick, его и так можно слушать :-\

Слушать в кс wav, учитывая что контра поддерживает PCM 8 бит 11 кГц, моно, ещё ужаснее, поверьте. Хотя, если вы используете китайские наушники за 50 рублей или колонки схожей стоимости, вы навряд-ли заметите разницу между mp3 320 кбит/с, 44 кГц, и wav который поддерживается контрой.
На некоторых серверах админы ставят музыку на окончания раунда. Отключаемую, если что. Вам что приятней слушать, нормальную музыку или подобие на музыку? Или может, вам удобнее видеть сообщение, а-ля "Раунд закончился. Включите у себя, пожалуйста, какую-нибудь музыку"

soffrick писал(а):Вроде wav меньше вешает(по объёму), чем мр3

Ну, во-первых, не вешает а весит, ибо вешают одежду на верёвку сушиться, а во-вторых, несжатый формат весит больше сжатого? Это как?
В контре wav весит меньше из-за сильного ухудшения качества звучания. При том же размере файла mp3 будет звучать на порядок лучше, чем wav, который поддерживается контрой.

Если говорить про wav вообще, сняв с него контровские ограничения, то он будет весить больше mp3 раза так в 4, а может и ещё больше.


Хм.. что бы вам такого нарезать для примера. Просто Гуфа у меня на компе не водится, равно как прочего рэпа, а вы, походу, только его и слушаете. Там качество звучания не важно, главное чтобы речь разобрать можно было. :-!
Пофигу, нарезал WT. Потерпите немного. :)
Это один и тот-же фрагмент, по-разному закодированный (смотри приложенные файлы).
Wav оригинального качества сюда приложить не могу, ибо даже в заархивированном виде он не влезает в допустимые 1 мб. Хотя... Сейчас куда-нить его залью.
Залил. Вы должны зарегистрироваться, чтобы видеть ссылки.. В разархивированном виде этот wav весит 10407 кб. Как говорится, почувствуйте разницу.
Wav закодированный с параметрами, пригодными для контры, вообще не осилил первую часть этого фрагмента.


Хм. Столкнулся с одной забавной проблемой при заливке примеров аудио-файлов.
Расширение wav запрещено администратором.
Походу админ-представитель сексуальных меньшинств, раз запрещает такие форматы. Надеюсь тут хоть rar не запрещён? Не запрещён. Спасибо огромное.

Расширение mp3 запрещено администратором.
Не, администратор точно представитель сексуальных меньшинств.
Последний раз редактировалось Chuvi 16 авг 2012, 00:26, всего редактировалось 1 раз.
Плагинами на заказ не занимаюсь.
Своих дел хватает.
Аватара пользователя
Chuvi
Модератор
 
Сообщения: 2253
Зарегистрирован: 24 ноя 2011, 08:03
Благодарил (а): 127 раз.
Поблагодарили: 562 раз.

Re: Инклуд для разбора mp3-файлов. Версия 0.0.1 Alpha.

Сообщение Матвей » 10 июл 2012, 13:06

Chuvi, Работа хорошая да, но зачем лишняя нагрузка сервера если просто можно сделать через client_cmd(id, "mp3 play"). Я ничего плохого не говорю но Это было предсказуемо:
Plrip писал(а):смысл инклуда?

soffrick писал(а):Слушать mp3 в кс :-!

Plrip писал(а):его и так можно слушать :-\

soffrick писал(а):И я про тоже. В кс нужно убивать, а не музыку слушать 8-)

Ну а опытные скриптеры конечно же начнут обсуждать сам код, показывать ошибки, писать свои варианты одной из функций. И просто я думаю на троллей внимания обращать не нужно.
Аватара пользователя
Матвей
 
Сообщения: 1064
Зарегистрирован: 11 дек 2011, 14:32
Откуда: Украина
Благодарил (а): 164 раз.
Поблагодарили: 161 раз.

След.

Вернуться в Статьи / фрагменты кода

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 10