Varför fungerar inte detta med ljud i Python

Permalänk
Medlem

Varför fungerar inte detta med ljud i Python

Har tidigare haft denna kod som då fungerat alldeles utmärkt.

Det är som att något är fel med ljudfilerna eller sökvägen dit.

from playsound import playsound def play_music(): playsound('Ljud/gitarr1.wav') playsound('Ljud/song1.wav') play_music()

Ljudfilerna finns och ligger i mappen Ljud.

Visa signatur

Chassi: Fractal Design Define C || Processor: Intel i7-8700K || Grafikkort: ASUS GeForce GTX 1080Ti ROG Strix Gaming || Moderkort: Gigabyte Z370 AORUS ULTRA WIFI || Minne: Corsair Vengeance LPX DDR4 3000MHz 32 Gb || Lagring: Samsung 860 EVO 1TB SSD || PSU: Seasonic Focus+ 850W 85+ GOLD PSU || Skärm:Samsung Odyssey G9 || Windows 10

Permalänk
Medlem

Ingen aning, men skulle det kunna vara nåt så enkelt som ett saknat "/"? Ex

playsound('/Ljud/gitarr1.wav')

Permalänk
Medlem

Annars kan du kolla om du är i rätt working directory.
Import os
Os.getcwd()

Permalänk
Medlem
Skrivet av m4gnify:

Ingen aning, men skulle det kunna vara nåt så enkelt som ett saknat "/"? Ex

playsound('/Ljud/gitarr1.wav')

Nej, tyvärr.

Visa signatur

Chassi: Fractal Design Define C || Processor: Intel i7-8700K || Grafikkort: ASUS GeForce GTX 1080Ti ROG Strix Gaming || Moderkort: Gigabyte Z370 AORUS ULTRA WIFI || Minne: Corsair Vengeance LPX DDR4 3000MHz 32 Gb || Lagring: Samsung 860 EVO 1TB SSD || PSU: Seasonic Focus+ 850W 85+ GOLD PSU || Skärm:Samsung Odyssey G9 || Windows 10

Permalänk
Hedersmedlem

Får du felmeddelande? Stängs det av direkt, eller stängs det av efter ljudfilens längd trots att inget hörs? Operativsystem? Ljudet funkar i övrigt, antar jag?

Visa signatur

Asus ROG STRIX B550-F / Ryzen 5800X3D / 48 GB 3200 MHz CL14 / Asus TUF 3080 OC / WD SN850 1 TB, Kingston NV1 2 TB + NAS / Corsair RM650x V3 / Acer XB271HU (1440p165) / LG C1 55"
NAS: 6700K/16GB/Debian+ZFS | Backup (offsite): 9600K/16GB/Debian+ZFS

Permalänk
Medlem
Skrivet av pine-orange:

Annars kan du kolla om du är i rätt working directory.
Import os
Os.getcwd()

Tack! Det var något med att jag hade det i dropbox först men efter att fixat ny mapp fungerade det inte.

Visa signatur

Chassi: Fractal Design Define C || Processor: Intel i7-8700K || Grafikkort: ASUS GeForce GTX 1080Ti ROG Strix Gaming || Moderkort: Gigabyte Z370 AORUS ULTRA WIFI || Minne: Corsair Vengeance LPX DDR4 3000MHz 32 Gb || Lagring: Samsung 860 EVO 1TB SSD || PSU: Seasonic Focus+ 850W 85+ GOLD PSU || Skärm:Samsung Odyssey G9 || Windows 10

Permalänk
Medlem
Skrivet av Thomas:

Får du felmeddelande? Stängs det av direkt, eller stängs det av efter ljudfilens längd trots att inget hörs? Operativsystem? Ljudet funkar i övrigt, antar jag?

Ja, fick felmeddelande att filen inte hittas.

Efter lite sökande så verkade det krävas en inte för stor mp3-fil. Testade en online och det verkade fungera.

Kanske har de slutat stöda wav?

Testade att ladda ner en mp3 men det fungerade inte heller.

Detta fungerade:

Visa signatur

Chassi: Fractal Design Define C || Processor: Intel i7-8700K || Grafikkort: ASUS GeForce GTX 1080Ti ROG Strix Gaming || Moderkort: Gigabyte Z370 AORUS ULTRA WIFI || Minne: Corsair Vengeance LPX DDR4 3000MHz 32 Gb || Lagring: Samsung 860 EVO 1TB SSD || PSU: Seasonic Focus+ 850W 85+ GOLD PSU || Skärm:Samsung Odyssey G9 || Windows 10

Permalänk
Medlem
Skrivet av Larsp777:

Ja, fick felmeddelande att filen inte hittas.

Efter lite sökande så verkade det krävas en inte för stor mp3-fil. Testade en online och det verkade fungera.

Kanske har de slutat stöda wav?

Testade att ladda ner en mp3 men det fungerade inte heller.

Detta fungerade:

Låter mer som att du har fel sökväg till filen.

Om du enbart skriver "Files/fil.wav" så förutsätter det att ditt skript ligger på samma nivå som "Files"-mappen.
Tex:

Script.py Files fil.wav

Edit: enligt https://stackoverflow.com/a/65111284/6019661 så måste du ange hela sökvägen till filen då playsound inte tar relativa sökvägar.

Visa signatur

NZXT H510 Flow MSI B450 Tomahawk MAX
AMD Ryzen 5800X3D RX 7900XTX Kingston Fury 64GB
LG C2 42" 4K@120Hz AOC Q27G2U 1440P@144Hz

Permalänk
Medlem

Prova med hela sökvägen t ex "C:/Ljud/gitarr1.wav"

Permalänk
Medlem
Skrivet av Pamudas:

Låter mer som att du har fel sökväg till filen.

Om du enbart skriver "Files/fil.wav" så förutsätter det att ditt skript ligger på samma nivå som "Files"-mappen.
Tex:

Script.py Files fil.wav

Edit: enligt https://stackoverflow.com/a/65111284/6019661 så måste du ange hela sökvägen till filen då playsound inte tar relativa sökvägar.

Jo, jag vet men det verkar inte vara problemet.

Edit: Eller det är nog problem med sökvägen men inte så enkelt tyvärr.

Visa signatur

Chassi: Fractal Design Define C || Processor: Intel i7-8700K || Grafikkort: ASUS GeForce GTX 1080Ti ROG Strix Gaming || Moderkort: Gigabyte Z370 AORUS ULTRA WIFI || Minne: Corsair Vengeance LPX DDR4 3000MHz 32 Gb || Lagring: Samsung 860 EVO 1TB SSD || PSU: Seasonic Focus+ 850W 85+ GOLD PSU || Skärm:Samsung Odyssey G9 || Windows 10

Permalänk
Medlem
Skrivet av Chibariku:

Prova med hela sökvägen t ex "C:/Ljud/gitarr1.wav"

Provade och då får jag "Det går inte att ange extra tecken efter en sträng inom citattecken"

Visa signatur

Chassi: Fractal Design Define C || Processor: Intel i7-8700K || Grafikkort: ASUS GeForce GTX 1080Ti ROG Strix Gaming || Moderkort: Gigabyte Z370 AORUS ULTRA WIFI || Minne: Corsair Vengeance LPX DDR4 3000MHz 32 Gb || Lagring: Samsung 860 EVO 1TB SSD || PSU: Seasonic Focus+ 850W 85+ GOLD PSU || Skärm:Samsung Odyssey G9 || Windows 10

Permalänk
Medlem
Skrivet av Pamudas:

Låter mer som att du har fel sökväg till filen.

Om du enbart skriver "Files/fil.wav" så förutsätter det att ditt skript ligger på samma nivå som "Files"-mappen.
Tex:

Script.py Files fil.wav

Edit: enligt https://stackoverflow.com/a/65111284/6019661 så måste du ange hela sökvägen till filen då playsound inte tar relativa sökvägar.

Fungerar inte heller tyvärr. Märkligt. Det är gammal kod och fungerade innan utan problem.

Visa signatur

Chassi: Fractal Design Define C || Processor: Intel i7-8700K || Grafikkort: ASUS GeForce GTX 1080Ti ROG Strix Gaming || Moderkort: Gigabyte Z370 AORUS ULTRA WIFI || Minne: Corsair Vengeance LPX DDR4 3000MHz 32 Gb || Lagring: Samsung 860 EVO 1TB SSD || PSU: Seasonic Focus+ 850W 85+ GOLD PSU || Skärm:Samsung Odyssey G9 || Windows 10

Permalänk
Medlem
Skrivet av Larsp777:

Fungerar inte heller tyvärr. Märkligt. Det är gammal kod och fungerade innan utan problem.

Om du visar exakt vad du försöker när du provar så blir det lättare att se om du gör något galet. Just nu kan vi bara gissa hur du har skrivit

Visa signatur

NZXT H510 Flow MSI B450 Tomahawk MAX
AMD Ryzen 5800X3D RX 7900XTX Kingston Fury 64GB
LG C2 42" 4K@120Hz AOC Q27G2U 1440P@144Hz

Permalänk
Medlem
Skrivet av Pamudas:

Om du visar exakt vad du försöker när du provar så blir det lättare att se om du gör något galet. Just nu kan vi bara gissa hur du har skrivit

Koden är inte mer än det jag visade i början. En funktion för att spela ljud för att demonstrera funktioner i Python.

I mappen ”Ljud” finns wav-filerna ”gitarr.wav” och ”song1.wav”.

Visa signatur

Chassi: Fractal Design Define C || Processor: Intel i7-8700K || Grafikkort: ASUS GeForce GTX 1080Ti ROG Strix Gaming || Moderkort: Gigabyte Z370 AORUS ULTRA WIFI || Minne: Corsair Vengeance LPX DDR4 3000MHz 32 Gb || Lagring: Samsung 860 EVO 1TB SSD || PSU: Seasonic Focus+ 850W 85+ GOLD PSU || Skärm:Samsung Odyssey G9 || Windows 10

Permalänk
Medlem
Skrivet av Larsp777:

Koden är inte mer än det jag visade i början. En funktion för att spela ljud för att demonstrera funktioner i Python.

I mappen ”Ljud” finns wav-filerna ”gitarr.wav” och ”song1.wav”.

Du säger att det inte fungerar när du provar. Vad är det du provar? Visa det istället, det är det jag menar

Visa signatur

NZXT H510 Flow MSI B450 Tomahawk MAX
AMD Ryzen 5800X3D RX 7900XTX Kingston Fury 64GB
LG C2 42" 4K@120Hz AOC Q27G2U 1440P@144Hz

Permalänk
Medlem
Skrivet av Pamudas:

Du säger att det inte fungerar när du provar. Vad är det du provar? Visa det istället, det är det jag menar

Förlåt, men förstår inte vad du menar. Jag kör programmet och anropar funktionen. Då ska ljudet spelas.

Visa signatur

Chassi: Fractal Design Define C || Processor: Intel i7-8700K || Grafikkort: ASUS GeForce GTX 1080Ti ROG Strix Gaming || Moderkort: Gigabyte Z370 AORUS ULTRA WIFI || Minne: Corsair Vengeance LPX DDR4 3000MHz 32 Gb || Lagring: Samsung 860 EVO 1TB SSD || PSU: Seasonic Focus+ 850W 85+ GOLD PSU || Skärm:Samsung Odyssey G9 || Windows 10

Permalänk
Medlem
Skrivet av Larsp777:

Förlåt, men förstår inte vad du menar. Jag kör programmet och anropar funktionen. Då ska ljudet spelas.

Hur startar du scriptet?
Var i katalogen står du när du startar scriptet? Därför om du inte står i katalogen där scriptet finns och försöker läsa in en fil relaterad till den så kommer scriptet inte att hitta filerna.
ex

cd /home/namn/pythonproject/ python3 script.py

och

cd /home/namn/ python3 pythonproject/script.py

skiljer sig åt och om du har ljudfilerna under "/home/namn/pythonproject/Ljud" så kommer bara det första funka om du försöker med playsound('Ljud/gitarr1.wav')

Permalänk
Medlem
Skrivet av iXam:

Hur startar du scriptet?
Var i katalogen står du när du startar scriptet? Därför om du inte står i katalogen där scriptet finns och försöker läsa in en fil relaterad till den så kommer scriptet inte att hitta filerna.
ex

cd /home/namn/pythonproject/ python3 script.py

och

cd /home/namn/ python3 pythonproject/script.py

skiljer sig åt och om du har ljudfilerna under "/home/namn/pythonproject/Ljud" så kommer bara det första funka om du försöker med playsound('Ljud/gitarr1.wav')

Ok.. Använder Visual Studio Code.

Visa signatur

Chassi: Fractal Design Define C || Processor: Intel i7-8700K || Grafikkort: ASUS GeForce GTX 1080Ti ROG Strix Gaming || Moderkort: Gigabyte Z370 AORUS ULTRA WIFI || Minne: Corsair Vengeance LPX DDR4 3000MHz 32 Gb || Lagring: Samsung 860 EVO 1TB SSD || PSU: Seasonic Focus+ 850W 85+ GOLD PSU || Skärm:Samsung Odyssey G9 || Windows 10

Permalänk
Skrivet av iXam:

Hur startar du scriptet?
Var i katalogen står du när du startar scriptet? Därför om du inte står i katalogen där scriptet finns och försöker läsa in en fil relaterad till den så kommer scriptet inte att hitta filerna.
ex

cd /home/namn/pythonproject/ python3 script.py

och

cd /home/namn/ python3 pythonproject/script.py

skiljer sig åt och om du har ljudfilerna under "/home/namn/pythonproject/Ljud" så kommer bara det första funka om du försöker med playsound('Ljud/gitarr1.wav')

Egentligen bör man nog be skriptet att leta rätt på var Python-skriptet ligger och sedan ange sökvägen relativt denna plats. Hela programmet med skript och ljudfiler och allt kan ju flyttas till något annat ställe på hårddisken (så fullständig sökväg kanske inte funkar) och man kan inte lita på att skriptet ligger i arbetskatalogen.

Ett skript kan t.ex. startas på följande sätt:

1. python3 skript.py 2. python3 < skript.py 3. python3 ../skript.py 4. chmod u+x skript.py; ./skript.py 5. chmod u+x skript.py; export PATH=$PATH:$PWD; cd /någonstans; skript.py 6. python3 x:skript.py 7. import skript 8. execfile("skript.py") 9. exec(open("skript.py").read())

I fall 2 och 9 är det nog omöjligt för skriptet att finna rätt katalog.
Fall 3 är Linux-syntax. Ändra / till \ om du använder Windows.
Fall 4 och 5 funkar bara i Linux.
Fall 6 funkar bara i Windows. Det finns en separat arbetskatalog på varje enhet och x:skript.py är tänkt att betyda att du ska leta efter skriptet i arbetskatalogen på enhet X medan kommandotolken kanske står i arbetskatalogen på enhet Y.
Fall 8 tror jag bara funkar i Python 2.x, inte 3.x.

Permalänk
Medlem
Skrivet av Larsp777:

Ok.. Använder Visual Studio Code.

Vi vill se den exakta strängen du matar in i playsound. Det låter på felmeddelandet som att du ett " eller ' nånstans i strängen utöver i början och i slutet.

Om du använder VS Code rätt så borde din mapp bli rätt. Dvs om du kör os.getcwd() borde du få en mapp där du har mappen ljud i.

Permalänk
Medlem
Skrivet av pine-orange:

Vi vill se den exakta strängen du matar in i playsound. Det låter på felmeddelandet som att du ett " eller ' nånstans i strängen utöver i början och i slutet.

Om du använder VS Code rätt så borde din mapp bli rätt. Dvs om du kör os.getcwd() borde du få en mapp där du har mappen ljud i.

Så här ser min kod ut nu. Rad 9 är hur den såg ut innan och då fungerade det. Ljuden ligger i mappen Ljud.

from playsound import playsound import os print ("Current working dir : %s" % os.getcwd()) def play_music(): print("test") #playsound('https://file-examples-com.github.io/uploads/2017/11/file_exam...') #Fungerar nu. playsound('C:\Funktioner\Ljud\song1.wav') #playsound('Ljud/song1.wav') #Fungerade tidigare. #playsound('C:\\Funktioner\\song.mp3') play_music() play_music()

Detta är felmeddelanden jag får.

Windows PowerShell Copyright (C) Microsoft Corporation. All rights reserved. Try the new cross-platform PowerShell https://aka.ms/pscore6 PS C:\Funktioner> & C:/Users/larsp/AppData/Local/Programs/Python/Python310/python.exe c:/Funktioner/FunktionsTest.py Current working dir : C:\Funktioner test Error 305 for command: open "C:\Funktioner\Ljud\song1.wav" Det går inte att ange extra tecken efter en sträng inom citattecken. Error 263 for command: close "C:\Funktioner\Ljud\song1.wav" Den angivna enheten är inte öppen eller känns inte igen av MCI. Failed to close the file: "C:\Funktioner\Ljud\song1.wav" Traceback (most recent call last): PS C:\Funktioner> & C:/Users/larsp/AppData/Local/Programs/Python/Python310/python.exe c:/Funktioner/FunktionsTest.py Current working dir : C:\Funktioner test Error 305 for command: open "C:\Funktioner\Ljud\song1.wav" Det går inte att ange extra tecken efter en sträng inom citattecken. Error 263 for command: close "C:\Funktioner\Ljud\song1.wav" Den angivna enheten är inte öppen eller känns inte igen av MCI. Failed to close the file: "C:\Funktioner\Ljud\song1.wav" Traceback (most recent call last): play_music() File "c:\Funktioner\FunktionsTest.py", line 8, in play_music playsound('C:\Funktioner\Ljud\song1.wav') File "C:\Users\larsp\AppData\Local\Programs\Python\Python310\lib\site-packages\playsound.py", line 72, in _playsoundWin winCommand(u'open {}'.format(sound)) File "C:\Users\larsp\AppData\Local\Programs\Python\Python310\lib\site-packages\playsound.py", line 64, in winCommand raise PlaysoundException(exceptionMessage) playsound.PlaysoundException: Error 305 for command: open "C:\Funktioner\Ljud\song1.wav" Det går inte att ange extra tecken efter en sträng inom citattecken. PS C:\Funktioner> & C:/Users/larsp/AppData/Local/Programs/Python/Python310/python.exe c:/Funktioner/FunktionsTest.py Current working dir : C:\Funktioner test Error 305 for command: open "C:\Funktioner\Ljud\song1.wav" Det går inte att ange extra tecken efter en sträng inom citattecken. Error 263 for command: close "C:\Funktioner\Ljud\song1.wav" Den angivna enheten är inte öppen eller känns inte igen av MCI. Failed to close the file: "C:\Funktioner\Ljud\song1.wav" Traceback (most recent call last): PS C:\Funktioner> & C:/Users/larsp/AppData/Local/Programs/Python/Python310/python.exe c:/Funktioner/FunktionsTest.py Current working dir : C:\Funktioner test Error 305 for command: open "C:\Funktioner\Ljud\song1.wav" Det går inte att ange extra tecken efter en sträng inom citattecken. Error 263 for command: close "C:\Funktioner\Ljud\song1.wav" Den angivna enheten är inte öppen eller känns inte igen av MCI. Failed to close the file: "C:\Funktioner\Ljud\song1.wav" Traceback (most recent call last): File "c:\Funktioner\FunktionsTest.py", line 12, in <module> play_music() File "c:\Funktioner\FunktionsTest.py", line 8, in play_music playsound('C:\Funktioner\Ljud\song1.wav') File "C:\Users\larsp\AppData\Local\Programs\Python\Python310\lib\site-packages\playsound.py", line 72, in _playsoundWin winCommand(u'open {}'.format(sound)) File "C:\Users\larsp\AppData\Local\Programs\Python\Python310\lib\site-packages\playsound.py", line 64, in winCommand raise PlaysoundException(exceptionMessage) playsound.PlaysoundException: Error 305 for command: open "C:\Funktioner\Ljud\song1.wav" Det går inte att ange extra tecken efter en sträng inom citattecken.

Visa signatur

Chassi: Fractal Design Define C || Processor: Intel i7-8700K || Grafikkort: ASUS GeForce GTX 1080Ti ROG Strix Gaming || Moderkort: Gigabyte Z370 AORUS ULTRA WIFI || Minne: Corsair Vengeance LPX DDR4 3000MHz 32 Gb || Lagring: Samsung 860 EVO 1TB SSD || PSU: Seasonic Focus+ 850W 85+ GOLD PSU || Skärm:Samsung Odyssey G9 || Windows 10

Permalänk
Medlem

import os #user = os.getlogin() #path = 'C:\\Users\\'+user+'\\Desktop\\' path = 'C:\\Funktioner\\' dest = os.path.join(path, 'Ljud', 'song1.wav')

Visa signatur

AMD 7800X3D | ASUS TUF X670E-PLUS | Corsair Vengeance DDR5 32GB EXPO | ASUS TUF 4090 OC 24GB |
Noctua NH-U12A | Corsair 4000D | Corsair AX1200W | Steelseries Apex 7 | Steelseries Sensei Ten | ASUS VG35VQ

https://github.com/Mariusz89B

Permalänk
Medlem

@Larsp777: Felmeddelandet om extra tecken efter strängen är en bugg i playsound 1.3 som ser ut att ha fixats i denna commit dagen efter att 1.3 släpptes. Så du får antingen nedgradera till 1.2.2 eller använda senaste källkoden från playsounds repo.