Aktywne Wpisy
MyOwnWorstEnemy +784
Grizzzly +6
Jak można się ze sobą spotykać 9 lat i nie formalizować związku? Chyba wiadomo, że w takim razie jedna strona nie kocha albo w ogóle się nie kochają. 2-3 lata to maks moim zdaniem, ile kobieta powinna czekać na oświadczyny.
#zwiazki #podrywajzwykopem
#zwiazki #podrywajzwykopem
void playFile(const char *filename)
{
}
i mam tablicę stringów:
String drums[22]
{
"snare.wav", ....
}
co mógłbym zrobić żeby jak najszybciej i najwydajniej odpalać te pliki tą funkcją? Na razie mam tak i działa:
void playSample(byte i)
{
const char* pointer_to_string = drums[i].c_str();
playFile(pointer_to_string);
}
ale to chyba jest całkowicie naokoło rozwiązanie. Potrzebowałbym albo zdefniować tablicę jako "const char *" albo zmienić parametr funkcji na String, ktoś wie jak to zrobić?
(nazwy plików są stałe ale w trakcie programu inna funkcja przeskanuje inny folder i podmieni tablicę drums[22] na inne nazwy plików)
#arduino #elektronika ew. może ktoś z #csharp będzie wiedział?
String
mocno ratuje życie albo coś, tak też może być, to wtedy zostaw jak jest.Możesz też napisać:
playFile(drums[i].c_str())
ale to w sumie nic nie zmienia.
To jeszcze musi być kompatybilne z tym:
void add_filenames_to_array(File folderName)
{
byte i = 0;
while (true)
{
File entry = folderName.openNextFile();
if (!entry)
{
break;
}
drums[i] = entry.name(); //.name chyba jest Stringiem
i++;
entry.close();
}
}
c_str()
zstd::string
zwraca typconst char*
Twoje obecne podejście do odtwarzania plików dźwiękowych jest dobre, ale można je jeszcze nieco zoptymalizować. Aktualnie przekształcasz każdy element tablicy String w const char* za każdym razem, gdy wywołujesz funkcję playSample(). Możesz zoptymalizować to rozwiązanie, przechowując wcześniej przekształcone wskaźniki do stringów w tablicy, aby uniknąć zbędnego konwertowania przy każdym odtwarzaniu. Oto jak to zrobić:
// Zadeklaruj tablicę wskaźników do const char* i zainicjalizuj ją raz przy starcie programu.
const
ChatGPT
Jeśli chcesz zachować oryginalną tablicę String, ale przerabiać ją w locie bez konieczności utrzymywania osobnej tablicy wskaźników, możesz to zrobić, przechodząc przez konwersję String na const char* bezpośrednio w funkcji playSample(). Oto jak to zrobić:
cpp
Copy code
void playSample(byte i) {
// Konwertuj String na const char* i od razu użyj go w funkcji playFile.
playFile(drums[i].c_str());
}
W tym