SoundInfo

Biblioteka która daje nam do rąk kilka fajnych funkcji do obsługi dźwięków

ścieżkę podajemy bez cstrike/ w ścieżce musi się zawierać rozszerzenie pliku
wszystkie funkcje same rozpoznają czy to jest plik wav czy mp3

  • sfile_get_duration(szFilename[])
  • zwraca długość utworu jako float działa źle jeśli plik mp3 jest zakodowany z zmiennym bitrate (VBR)
    1 parametr ścieżka do pliku

  • get_duration(iData[SParam])
  • także zwraca długość utworu jako float ale z tą funkcją jest więcej jazdy
    działa źle jeśli plik mp3 jest zakodowany z zmiennym bitrate (VBR)
    1 parametr podajemy to co zwróci nam sfile_loaddata()

  • sfile_is_valid(szFilename[])
  • funkcja zwraca true jeśli plik jest obsługiwany przez cs’a czyli cs potrafi go odtworzyć
    false jeśli jest inaczej

  • sfile_type(szFilename[])
  • zwraca SFILE_MP3 jeśli plik to mp3 lub SFILE_WAV gdy wav jeśli nie znajdzie pliku zwraca SFILE_UNKNOWN
    1 parametr ścieżka do pliku

  • sfile_loaddata(szFilename[], iData[SParam])
  • ładuje informacje o pliku mp3 lub wav funkcja sama wybierze cóż to za plik jej dano ;D
    zwraca SRES_NOT_EXISTS jeśli nie znajdzie pliku
    dla pliku mp3
    SRES_BAD_PARAMETERS jeśli plik będzie miał złe parametry
    SRES_OK jeśli wszystko poszło dobrze
    dla wav
    SRES_BAD_SIGNATURE sygnatura pliku nie zgadza się z specyfikacją
    SRES_OK jak mp3
    1 Parametr ścieżka do pliku
    2 Tablica do której zostaną zapisane są informacje
    są to
    SOUND_FREQ – częstotliwość dźwięku
    SOUND_BYTERATE – byterate – ilość bitów na sekundę
    SOUND_CHAN_NUM – ilość kanałów
    SOUND_DURATION_F – czas float żeby ją poprawnie wyciągnąć używamy Float:iData[SOUND_DURATION_F]) lub get_duration(iData)

  • sfile_loaddata_mp3(szFilename[], iData[SParam])
  • to samo co sfile_loaddata ale tylko dla plików mp3

  • sfile_loaddata_wav(szFilename[], iData[SParam])
  • to samo co sfile_loaddata ale tylko dla plików wav

Stałe:

    SRES_BAD_PARAMETERS -2
    SRES_BAD_SIGNATURE -1
    SRES_NOT_EXISTS 0
    SRES_OK 1

Typ pliku

    SFILE_UNKNOWN
    SFILE_WAV
    SFILE_MP3

Informacje o utworze

new iData[SParam];

    SOUND_FREQ
    SOUND_BYTERATE
    SOUND_CHAN_NUM
    SOUND_DURATION_F

Przykład kodu:

#include <amxmodx>
#include <amxmisc>
#include <soundinfo>

#define PLUGIN "Wav"
#define VERSION "1.0"
#define AUTHOR "R3X"


public plugin_init() {
        register_plugin(PLUGIN, VERSION, AUTHOR);
        
        register_clcmd("sinfo", "sinfo",0, "<sound> //path from cstrike");
}
public sinfo(id){
        new szFilename[32];
        read_argv(1, szFilename, 31);
        
        switch(sfile_type(szFilename)){
                case SFILE_MP3: log_amx("MP3");
                case SFILE_WAV: log_amx("WAV");
                default: log_amx("UNKNOWN");
        }
        
        new iData[SParam];
        if(sfile_loaddata(szFilename, iData) == SRES_OK){
                client_print(id, print_console, "Freq = %d", iData[SOUND_FREQ]);
                client_print(id, print_console, "ByteRate = %d", iData[SOUND_BYTERATE]);
                client_print(id, print_console, "Channels = %d", iData[SOUND_CHAN_NUM]);
                client_print(id, print_console, "Duration = %f", Float:iData[SOUND_DURATION_F]);
                                client_print(id, print_console, "Duration = %f", sfile_get_duration(szFilename));
                                
                
                if(sfile_is_valid(szFilename))
                        client_print(id, print_console, "Valid!");
                else
                        client_print(id, print_console, "Invalid!");
        }
        return PLUGIN_HANDLED
}


soundinfo

Dodaj komentarz