Re: [python] Přehrávání v pyAudio
jj. Díky moc vám oběma. Ten první odkaz mi pomohl a už mi to funguje. Akorát teď řeším další problém - jak spustit více vláken. Ale myslím, že jsem našel: http://212.47.236.10/doku.php?id=python:misc:wxpython_postevent_threading Ještě jednou díky moc. Ctibor -- Původní e-mail -- Od: Petr Blahoš Komu: python@py.cz Datum: 5. 12. 2018 9:21:19 Předmět: Re: [python] Přehrávání v pyAudio " No, jde o to, že ta funkce PrehrajSoubor se zavolá jen jednou, pokaždé, když zmáčkneš tlačíto Prehraj. Takže při každém stisku tlačítka přehraje jeden chunk. Jak radí Jirka, nastuduj si thready. Pozor, u wxpythonu můžeš volat funkce wxpythonu jenom z hlavního threadu - musíš nějak posílat tomu hlavnímu threadu zprávy, ať to udělá. Myslím, že by se Ti hodily tyto 2 texty: https://wiki.wxpython.org/Non-Blocking%20Gui (https://wiki.wxpython.org/Non-Blocking%20Gui) https://wiki.wxpython.org/LongRunningTasks (https://wiki.wxpython.org/LongRunningTasks) -- Petr On Tue, Dec 4, 2018 at 7:34 PM Ctibor.Plasek mailto:ctibor.pla...@seznam.cz)> wrote: " Ahoj. Ve wx.python když po stisknutí tlačítka přehrávám stream tímto způsobem: chunk = 1024 filePyAudio = wave.open(wavefile,"rb") stream = p.open(format = p.get_format_from_width(filePyAudio.getsampwidth()) , channels = filePyAudio.getnchannels(), rate = filePyAudio.getframerate(), output = True) data = filePyAudio.readframes(chunk) while data: stream.write(data) tak to sice krásně přehrává, ale nedá se už nic jiného dělat, než to dohraje.( v zásadě to okno jakoby vytuhne) Tak jsem si myslel, že bych nějak v okně kontroloval druhé tlačítko Stop a přehrával to vždy po těch kouscích. Jenže po klinutí na Play se vždy přehraje pouze jeden chunk a pak se zastaví. Všechno jsem zglobalizoval (což myslím není nejlepší nápad), ale stejně nic. Mohli byste mi, prosím, poradit? Vše viz přiložený soubor. Díky Ctibor ___ Python mailing list python@py.cz(mailto:python@py.cz) http://www.py.cz/mailman/listinfo/python (http://www.py.cz/mailman/listinfo/python) Visit: http://www.py.cz(http://www.py.cz) " -- https://blahos.com/(https://blahos.com/) https://traceability.cz/(https://traceability.cz/) ___ Python mailing list python@py.cz http://www.py.cz/mailman/listinfo/python Visit: http://www.py.cz "___ Python mailing list python@py.cz http://www.py.cz/mailman/listinfo/python Visit: http://www.py.cz
Re: [python] Přehrávání v pyAudio
No, jde o to, že ta funkce PrehrajSoubor se zavolá jen jednou, pokaždé, když zmáčkneš tlačíto Prehraj. Takže při každém stisku tlačítka přehraje jeden chunk. Jak radí Jirka, nastuduj si thready. Pozor, u wxpythonu můžeš volat funkce wxpythonu jenom z hlavního threadu - musíš nějak posílat tomu hlavnímu threadu zprávy, ať to udělá. Myslím, že by se Ti hodily tyto 2 texty: https://wiki.wxpython.org/Non-Blocking%20Gui https://wiki.wxpython.org/LongRunningTasks -- Petr On Tue, Dec 4, 2018 at 7:34 PM Ctibor.Plasek wrote: > Ahoj. > Ve wx.python když po stisknutí tlačítka přehrávám stream tímto způsobem: > > chunk = 1024 > filePyAudio = wave.open(wavefile,"rb") > stream = p.open(format = > p.get_format_from_width(filePyAudio.getsampwidth()), channels = > filePyAudio.getnchannels(), rate = filePyAudio.getframerate(), output = > True) > data = filePyAudio.readframes(chunk) > while data: > stream.write(data) > > tak to sice krásně přehrává, ale nedá se už nic jiného dělat, než to > dohraje.( v zásadě to okno jakoby vytuhne) > Tak jsem si myslel, že bych nějak v okně kontroloval druhé tlačítko Stop a > přehrával to vždy po těch kouscích. > Jenže po klinutí na Play se vždy přehraje pouze jeden chunk a pak se > zastaví. Všechno jsem zglobalizoval (což myslím není nejlepší nápad), ale > stejně nic. > Mohli byste mi, prosím, poradit? > > Vše viz přiložený soubor. > Díky Ctibor > > > ___ > Python mailing list > python@py.cz > http://www.py.cz/mailman/listinfo/python > > Visit: http://www.py.cz > -- https://blahos.com/ https://traceability.cz/ ___ Python mailing list python@py.cz http://www.py.cz/mailman/listinfo/python Visit: http://www.py.cz
Re: [python] Přehrávání v pyAudio
Ani wx.python ani audio jsem nikdy nedelal. Ale pripada mi, ze si budes muset nastudovat thready (v jednom prehravat, v druhem ovladat) nebo rovnou procesy (pres multiprocessing). Ale ber to s rezervou, o wx.python nic nevim. Jirka On Tue, 4 Dec 2018 at 19:35, Ctibor.Plasek wrote: > Ahoj. > Ve wx.python když po stisknutí tlačítka přehrávám stream tímto způsobem: > > chunk = 1024 > filePyAudio = wave.open(wavefile,"rb") > stream = p.open(format = > p.get_format_from_width(filePyAudio.getsampwidth()), channels = > filePyAudio.getnchannels(), rate = filePyAudio.getframerate(), output = > True) > data = filePyAudio.readframes(chunk) > while data: > stream.write(data) > > tak to sice krásně přehrává, ale nedá se už nic jiného dělat, než to > dohraje.( v zásadě to okno jakoby vytuhne) > Tak jsem si myslel, že bych nějak v okně kontroloval druhé tlačítko Stop a > přehrával to vždy po těch kouscích. > Jenže po klinutí na Play se vždy přehraje pouze jeden chunk a pak se > zastaví. Všechno jsem zglobalizoval (což myslím není nejlepší nápad), ale > stejně nic. > Mohli byste mi, prosím, poradit? > > Vše viz přiložený soubor. > Díky Ctibor > > > ___ > Python mailing list > python@py.cz > http://www.py.cz/mailman/listinfo/python > > Visit: http://www.py.cz > ___ Python mailing list python@py.cz http://www.py.cz/mailman/listinfo/python Visit: http://www.py.cz