zvuk v C#
-
harrison314
Hardcore addict
- Príspevky: 8224
- Registrovaný: 27 máj 2009, 20:42
- Bydlisko: Bratislava
- Kontaktovať používateľa:
zvuk v C#
nieviet niekto ako generovat zvuk urcitej frekvenice v C#,
alebo ako prepisat konštruktor rodičovskej triedy?
alebo ako prepisat konštruktor rodičovskej triedy?
-
TGiJack
Medium Star
- Príspevky: 419
- Registrovaný: 30 nov 2006, 19:37
- Bydlisko: NO
- Kontaktovať používateľa:
skus si pokukat tuto temu je tam toho dost popisane aj scriptiky určite z toho vičitaš čo potrebuješ
http://www.hojko.com/zvoncek-v-c-a-t120429.html
http://www.hojko.com/zvoncek-v-c-a-t120429.html
Zvuk s minirepráku na doske:
System.Console.Beep(frekvencia, dĺžka);
Zvuk pomocou MIDI (MIDI)
(normálne z audio výstupu):
http://www.codeproject.com/KB/audio-vid ... olkit.aspx
inak:
gugl: generate sound c# alebo sound generator c#
Prepísať konštruktor? Myslíš parametre, alebo celé telo? Neviem o tom (JA!), že by sa také niečo dalo, pokiaľ nemáš zdroják. Radšej napíš čo konkrétne (u čoho) potrebuješ.
System.Console.Beep(frekvencia, dĺžka);
Zvuk pomocou MIDI (MIDI)
(normálne z audio výstupu):
http://www.codeproject.com/KB/audio-vid ... olkit.aspx
inak:
gugl: generate sound c# alebo sound generator c#
Prepísať konštruktor? Myslíš parametre, alebo celé telo? Neviem o tom (JA!), že by sa také niečo dalo, pokiaľ nemáš zdroják. Radšej napíš čo konkrétne (u čoho) potrebuješ.
-
harrison314
Hardcore addict
- Príspevky: 8224
- Registrovaný: 27 máj 2009, 20:42
- Bydlisko: Bratislava
- Kontaktovať používateľa:
s tím konštruktorom myslím celé telo, parametre by som prepisal preťžením.
Konkretny príklad na to nemám , myslel som to všoubecne.
Pretože som nikde o tom nič nenašiel.
A čo sa tíka generovania zvuku, chcem generovat len jednoduchy sinusovy signal presnej frekvencie, pokial by bolo možne tak dvojkanalovo. Teda na výstup zvukovej karty ( checem si postavit maly DDS genrator ) a nie vnutorneho repracika , ktory bol v mode za čias TurboPascalu 7 .
Konkretny príklad na to nemám , myslel som to všoubecne.
Pretože som nikde o tom nič nenašiel.
A čo sa tíka generovania zvuku, chcem generovat len jednoduchy sinusovy signal presnej frekvencie, pokial by bolo možne tak dvojkanalovo. Teda na výstup zvukovej karty ( checem si postavit maly DDS genrator ) a nie vnutorneho repracika , ktory bol v mode za čias TurboPascalu 7 .
No chcel som ti poslať stránku kde bol generátor čo hľadáš, ale žiaľ ju narýchlo neviem nájsť (asi to bolo na www.codeproject.com) a autor sa tam nepodpísal (do zdrojáku). Jediné čo viem je názov projektu CPI.AUDIO, ale to je žiaľ málo (kvôli hľadaniu).
Ale našiel som stránku kde si ten projekt (po zaregistrovaní) môžeš stiahnúť ( http://en.pudn.com/downloads105/sourcec ... 75_en.html# ).
No a ešte, na codeproject sú aj iné projekty zamerané na generovanie zvuku. Neskúšal som ich, ale pravdepodobne idú (keď ich tam dali). Pozri si nejaké ak máš záujem: http://www.codeproject.com/KB/audio-video/
Ale našiel som stránku kde si ten projekt (po zaregistrovaní) môžeš stiahnúť ( http://en.pudn.com/downloads105/sourcec ... 75_en.html# ).
No a ešte, na codeproject sú aj iné projekty zamerané na generovanie zvuku. Neskúšal som ich, ale pravdepodobne idú (keď ich tam dali). Pozri si nejaké ak máš záujem: http://www.codeproject.com/KB/audio-video/
-
harrison314
Hardcore addict
- Príspevky: 8224
- Registrovaný: 27 máj 2009, 20:42
- Bydlisko: Bratislava
- Kontaktovať používateľa:
Tomuto akosi nechápem. Takže, máš Graphics na ktorom je nakreslený graf a chceš ho uložiť do súboru. A z čoho si prevzial kontrolu Graphics? Z PictureBoxu (PictureBox.CreateGraphics())?harrison314 napísal:Ešte mám problém z kresllením
v triede graphics si nakreslím napr. graf ale potom mám problém s jeho uložením na disk (bez toho aby sa zobrazilo v okne ) alebo zobrazením v PictureBox-e .
Skušal som ju pretipovať na triedu Image ale to nefungovalo.
A nechápem tomu "bez toho aby sa zobrazilo v okne", čo sa má zobraziť v okne?
Dám radšej príklad z toho, čo som robil ja:
Kód: Vybrať všetko
Panel panel = new ...; // JA som kreslil na panel (ale môžeš aj do formulára)
Graphics g = panel.CreateGraphics();
Bitmap obrázok = new (panel.Width, panel.Height);
g.DrawLine(....);
panel.DrawToBitmap(obrázok, panel.ClientRectangle); // do "obrázok" sa uloží screenshot o rozmeroch ClientRectangle
obrázok.Save(....); // ak ho chceš uložiť do súboru
// A ak chceš graf zobraziť ako obrázok na PictureBoxe
PictureBox pb = new ....;
pb.Image = obrázok
-
harrison314
Hardcore addict
- Príspevky: 8224
- Registrovaný: 27 máj 2009, 20:42
- Bydlisko: Bratislava
- Kontaktovať používateľa:
novy obrazok som ziskal takto:
Kód: Vybrať všetko
Bitmap bmp = new Bitmap(300,300);
Image img = (image) bmp;
Graphics grp = Graphics.FromImage(img);
Stále nechápem. Čo ti vlastne nejde? Chceš kresliť cez grp do img a potom to uložiť?:
A keď ho chceš zobraziť v PictureBoxe:
Kód: Vybrať všetko
grp.DrawLine(....); // nakreslíš čo chceš
img.Save("CestaNazovSuboru.png"); //jednoducho uložíš Kód: Vybrať všetko
PictureBox pb = new ....;
pb.Image = Image.FromFile("CestaNazovSuboru");-
harrison314
Hardcore addict
- Príspevky: 8224
- Registrovaný: 27 máj 2009, 20:42
- Bydlisko: Bratislava
- Kontaktovať používateľa:
Skús si to overiť pomocou vlasnosti (properties) IsCompleted rozhrania (interface) IAsyncResult:
Tu máš aj pekný príklad (síce anglicky, ale to nevadí, pokiaľ pochopíš príklad): http://en.csharp-online.net/CSharp_Dele ... thod_calls
poprípade gúgl: asynchronous delegate c# is completed
Kód: Vybrať všetko
IAsyncResult ia = new DelegátOné().BeginInvoke(...);
...
if(ia.IsCompleted)
...
poprípade gúgl: asynchronous delegate c# is completed
-
harrison314
Hardcore addict
- Príspevky: 8224
- Registrovaný: 27 máj 2009, 20:42
- Bydlisko: Bratislava
- Kontaktovať používateľa:
Na internete.harrison314 napísal:nevies nahodou, kde by som nasiel navratovu hodnotu
API funkcie WinExec ?
http://msdn.microsoft.com/en-us/library ... S.85).aspx
Nechápem.harrison314 napísal: Myslim retazec , ktory vypise cmd
Radšej napíš čo presne zamýšľaš.
-
harrison314
Hardcore addict
- Príspevky: 8224
- Registrovaný: 27 máj 2009, 20:42
- Bydlisko: Bratislava
- Kontaktovať používateľa:
Laicky povedane chcem aby moj program mal pristup k prikazovemu riadku, teda aby mohol aj citat co mu dane prikazy vratia (napr. naplanovane spustenia , alebo stav pamete ).
Skusal som to cez triedu Process ale neuspesne , nikdy sa mi nepodarilo ziskaz z neho odpoved , vzdycky sa zasekl pri
p.StandartOutput.ReadToEnd();
a netusim preco, pozeral som to aj na nete ale vsade to mali napisane takto
tak to skusam cez API funkcie ( zada sa mi to profesionalnejsie)
Skusal som to cez triedu Process ale neuspesne , nikdy sa mi nepodarilo ziskaz z neho odpoved , vzdycky sa zasekl pri
p.StandartOutput.ReadToEnd();
a netusim preco, pozeral som to aj na nete ale vsade to mali napisane takto
Kód: Vybrať všetko
Process p = new Process();
p.StartInfo.FileName = "cmd.exe";
p.StartInfo.CreateNoWindow = true;
p.StartInfo.RedirectStandardError = true;
p.StartInfo.RedirectStandardInput = true;
p.StartInfo.RedirectStandardOutput = true;
p.StartInfo.UseShellExecute = false;
p.Start();
p.StandardInput.WriteLine("MEM");
string s= p.StandardOutput.ReadToEnd(); // tu by mal vratit // stav pamete ale zasekol sa, ale nevyvola vynimku
Console.WriteLine(s);
p.Close();
Asi to nieje presne tak ako si myslel... alebo ako som si myslel, že si myslíš... Ani neviem načo to presne potrebuješ, takže jediné funkčné riešenie, ktoré som našiel bolo toto:
/C je voľba príkazového riadka
http://www.java2s.com/Code/CSharp/Devel ... Output.htm
Kód: Vybrať všetko
Process p = new Process();
p.StartInfo.FileName = "cmd.exe";
p.StartInfo.CreateNoWindow = true;
p.StartInfo.RedirectStandardInput = true;
p.StartInfo.RedirectStandardOutput = true;
p.StartInfo.UseShellExecute = false;
p.StartInfo.Arguments = "/C mem"; // namiesto mem dohoď príkaz, ktorý chceš aby sa vykonal
p.Start();
string s = p.StandardOutput.ReadToEnd();
MessageBox.Show(s);
p.Close(); http://www.java2s.com/Code/CSharp/Devel ... Output.htm