[+] Python, skrypt nie wykonuje si

Potrzebujesz pomocy z C, C++, perl, python, itp.
cloudbuster
Beginner
Posty: 126
Rejestracja: 02 lipca 2013, 22:31

[+] Python, skrypt nie wykonuje się dalej po "os.system"

Post autor: cloudbuster »

Witam,
Chciałbym stworzyć coś na wzór odtwarzacza mp3. Dla każdego guzika będzie inny utwór.
Problem polega na tym, że kod działa tylko do odtworzenia dźwięku, potem nie reaguje. Sprzętowo wszystko jest ok. Urządzenie ma działać pod Raspberry Pi, czyli debian.
import time
import RPi.GPIO as GPIO
import os


GPIO.setmode(GPIO.BCM)
GPIO.cleanup()
GPIO.setwarnings(False)
GPIO.setup(4,GPIO.IN)
GPIO.setup(17,GPIO.IN)
GPIO.setup(27,GPIO.IN)
GPIO.setup(22,GPIO.IN)


while True:


if (GPIO.input(4) == False):
os.system('sudo mpg123 1.mp3)
time.sleep(1000)


if (GPIO.input(17) == False): #drugi pin na złączu
os.system('sudo mpg321 -l 0 2.mp3') # nieskonczona ilosc razy

if (GPIO.input(27) == False):
os.system('sudo mpg321 3.mp3')
time.sleep(7000)


Próbowałem też po odtworzeniu dźwięku zabijać proces poprzez
os.system('sudo killall mpg321')
,
ale nic to nie daje.
Awatar użytkownika
LordRuthwen
Moderator
Posty: 2324
Rejestracja: 18 września 2009, 21:45
Lokalizacja: klikash?

Post autor: LordRuthwen »

Jeśli czekasz 1000 sekund to czemu się dziwisz?
liske1
Beginner
Posty: 110
Rejestracja: 12 maja 2012, 13:54

Post autor: liske1 »

Nie zamknąłeś cudzysłowia w tej linijce:

Kod: Zaznacz cały

os.system('sudo mpg123 1.mp3)
cloudbuster
Beginner
Posty: 126
Rejestracja: 02 lipca 2013, 22:31

Post autor: cloudbuster »

a... to nie gramatyka C++ :) .
To pewnie to, sprawdzę i dam znać.
cloudbuster
Beginner
Posty: 126
Rejestracja: 02 lipca 2013, 22:31

Post autor: cloudbuster »

Problem rozwiązany.
Dzięki!
Awatar użytkownika
LordRuthwen
Moderator
Posty: 2324
Rejestracja: 18 września 2009, 21:45
Lokalizacja: klikash?

Post autor: LordRuthwen »

Oznacz problem jako rozwiązany, zgodnie z regulaminem forum.
cloudbuster
Beginner
Posty: 126
Rejestracja: 02 lipca 2013, 22:31

Post autor: cloudbuster »

Niemniej.... zostaje jeszcze jedna sprawa:
Chciałbym by program reagował na sygnał nawe, gdy dźwięk jest odtwarzany. W tej chwili dźwięk musi się skończyć, a dopiero potem "słucha" co dalej.
Awatar użytkownika
LordRuthwen
Moderator
Posty: 2324
Rejestracja: 18 września 2009, 21:45
Lokalizacja: klikash?

Post autor: LordRuthwen »

No to chyba musisz mieć odpalony drugi wątek, inaczej tego nie zrobisz.
cloudbuster
Beginner
Posty: 126
Rejestracja: 02 lipca 2013, 22:31

Post autor: cloudbuster »

Ok... Jak to zrobić? Gdzie szukać jasnego wyjaśnienia?
cloudbuster
Beginner
Posty: 126
Rejestracja: 02 lipca 2013, 22:31

Post autor: cloudbuster »

Dzięki...
Bardzo pomogliście.

Wystarczy po komendzie napisać 2>/dev/null &
Zablokowany