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
#include
#include
#define PLUGIN "Wav"
#define VERSION "1.0"
#define AUTHOR "R3X"
public plugin_init() {
register_plugin(PLUGIN, VERSION, AUTHOR);
register_clcmd("sinfo", "sinfo",0, " //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