Letar du efter gratis testljud att använda dig av i dina tester och projekt? KlassKlur har en hel del filmmusik och även ljudeffekter, klicka här för att se dem.
Låt oss spela musik!
I den här lektionen ska vi lära oss att spela upp ljud i högtalarna på din dator med hjälp av Python-kod.
Denna guide är endast för Windows i nuläget. En cross-platform, dvs. en lösning som fungerar för alla operativsystem kommer upp inom kort.
Importera modulen
Windows
Det första du borde göra i din kod är att importera modulen "winsound". Den är inbyggd i Python och det är inte svårare att importera den än att skriva:
Importera modulen "winsound" med denna kod:
Spela upp ljud
Hitta platsen för den ljudfil du vill använda:
Att spela upp ljud är enkelt. Innan vi börjar programmera så ska vi hitta en ljudfil att spela upp. Det enklaste är att börja med en ljudfil som du får använda, så du kan börja med att ladda ner den här filen med en trumma:
trumma.wav |
Den här filen är skapad med programmet "Audacity". Om du får för din lärare (om du är i skolan), så kan du gärna ta en titt på det programmet som är helt gratis och som är bra om du ska skapa egna ljudfiler. I skolan kan utbudet vara något begränsat, men det inbyggda programmet "Ljudinspelaren" ("Röstinspelaren" i Windows 10) är också bra för att skapa egna ljudfiler, men inte särskilt avancerat.
Windows
Nu när vi har en fil måste vi hitta vart någonstans den är placerad. Börja med att öppna "Utforskaren i Windows" som du oftast hittar bland program-snabbvalen. Om inte, sök bara på "Utforskaren" i Windows inbyggda sökfunktion. Du kan också söka på det namnet på filen du vill ha och sedan högerklicka och välja "Kopiera hela filsökvägen", så här:
Windows
Nu när vi har en fil måste vi hitta vart någonstans den är placerad. Börja med att öppna "Utforskaren i Windows" som du oftast hittar bland program-snabbvalen. Om inte, sök bara på "Utforskaren" i Windows inbyggda sökfunktion. Du kan också söka på det namnet på filen du vill ha och sedan högerklicka och välja "Kopiera hela filsökvägen", så här:
Har du sökt efter filen och valt "Kopiera hela sökvägen" så kan du gå vidare till nästa rubrik nedan.
Om du inte har det, utan öppnat filen i "Utforskaren", högerklicka bara på den och kopiera texten efter "Plats:". Här är några bilder för att enklare förklara:
Om du inte har det, utan öppnat filen i "Utforskaren", högerklicka bara på den och kopiera texten efter "Plats:". Här är några bilder för att enklare förklara:
Nu så är allt klart och du vore ha en text kopierad som ser ungefär ut så här: C:\Users\Användarnamn\Desktop\Skrivbord\KlassKlur -Filer\Trumma.mp3
Andra operativsystem
För närvarande har vi inga skärmdumpar med hur du hittar filsökvägen till en fil för andra operativsystem än Windows, men du kan följa dessa länkar för att lära dig hur man gör om du inte vet:
MacOS
Linux
För närvarande har vi inga skärmdumpar med hur du hittar filsökvägen till en fil för andra operativsystem än Windows, men du kan följa dessa länkar för att lära dig hur man gör om du inte vet:
MacOS
Linux
Använd filen i Python:
Nu måste vi använda modulen winsound för att spela upp filen, och det är absolut inte svårt. Importera modulen "winsound" och skriv denna kod:
Windows
Denna kod används för att spela upp ljud i Python.
Dock är vi inte klara än. Du måste klistra in sökvägen du kopierat till filen innanför två stycken "-tecken. Efter det så måste du lägga till ett komma och skriva "winsound.SND_FILENAME". Det berättar att det är en fil du ska spela upp. Nu så kan du prova att köra koden.
Troligtvis så kommer du att få felet:
SyntaxError: (unicode error) 'unicodeescape' codec can't decode bytes in position 2-3: truncated \UXXXXXXXX escape
Detta beror på att backslash-tecknet vi använder oftast accosieras med en kod i programmering. \n används t.ex. för att göra en ny rad i bland annat "print()" inom Python. Vi kan lösa detta genom att göra alla "backslash"-tecken dubbla. Då tolkar Python det som det ska göra för att vi ska kunna spela upp en fil. Så här ser en sådan kod ut:
SyntaxError: (unicode error) 'unicodeescape' codec can't decode bytes in position 2-3: truncated \UXXXXXXXX escape
Detta beror på att backslash-tecknet vi använder oftast accosieras med en kod i programmering. \n används t.ex. för att göra en ny rad i bland annat "print()" inom Python. Vi kan lösa detta genom att göra alla "backslash"-tecken dubbla. Då tolkar Python det som det ska göra för att vi ska kunna spela upp en fil. Så här ser en sådan kod ut:
Spela upp en fil med Winsound:
Dock måste alla filer i Winsound vara i ett s.k .wav-format, så filen du använder skulle behöva vara i detta filformat för att korrekt spelas upp.
Nu så har du lyckats spela upp ett ljud i Python! Du kan även spela upp alla inbyggda ljud in Windows. Exempel på dessa ljud är ljudet när en popup-ruta öppnas eller när du får en notis. Dessa ljud behöver du inte hitta filsökvägen till, dock behöver du dess "id". Här är ett exempel på ID:n till Windows 10:
ID |
Beskrivning |
SystemNotification |
Ljudet som spelas upp när t.ex. meddelande dyker upp på skärmen. |
För att använda dig av "systemljud", ändra bara "winsound.SND_FILENAME" till "winsound.SND_ALIAS" och skriv "ID:t" på ljudet du vill spela upp på platsen där du skriver filsökvägar i "vanliga" fall. Här är ett exempel:
Exempelkod som spelar uppsystemljudet "SystemNotification" i Windows 10:
Nu vet du hur man kan spela upp ljud inom Python! Prova nu att göra uppgifterna här nedanför om du vill. Du får även arbeta med dina egna projekt, det viktigaste är att du förstår hur man porgrammerar med ljud i Python.
Uppgifter till lektionen:
1. Kan du skapa ett program där filen "trumma.wav" loopas fem gånger?
2. Skapa ett program där användaren kan skriva in en filsökväg till en ljudfil och att ljudfilen sedan spelas upp.
3. Kan du skapa ett program där turtle() ritar i takt till musiken?
4. Skapa ett program där användaren kan skapa en spellista som sedan kan spelas upp.
5. Utveckla programmet du skapade i fråga 4 genom att skapa en ny fil och lägga till funktioner som att t.ex. spela upp en slumpvis ljudfil osv.
2. Skapa ett program där användaren kan skriva in en filsökväg till en ljudfil och att ljudfilen sedan spelas upp.
3. Kan du skapa ett program där turtle() ritar i takt till musiken?
4. Skapa ett program där användaren kan skapa en spellista som sedan kan spelas upp.
5. Utveckla programmet du skapade i fråga 4 genom att skapa en ny fil och lägga till funktioner som att t.ex. spela upp en slumpvis ljudfil osv.