Byta "Ljud ut" med applescript

Tråden skapades och har fått 11 svar. Det senaste inlägget skrevs .
1
  • Medlem
  • Kalmar
  • 2005-03-29 22:40

Har försökt fixa ett applescript som byter från mina soundsticks till hörlurar (usb -> inbyggt ljud)
eller tvärtom, men har inte lyckats riktigt. Är det någon som har något tips eller ett färdigt skript.
(Kanske inte så jobbigt att byta men man vill ju förenkla...) Min flickvän tycker inte om att höra ljudet att vinande kulor när jag spelar Wolfenstein ET!

  • Medlem
  • Stockholm
  • 2005-03-31 10:26

Jag byter ljud-ut i menyraden med hjälp av "SoundSource". Passar mig utmärkt. Det finns flera liknande alternativ också. Kika på www.versiontracker.com.

Jepp. SoundSource =bra.

  • Oregistrerad
  • 2005-03-31 22:52

Dra igång Manusredigeraren och tryck på spela in. Sen gör du inställningen och stannar inspelningen. Klart.

  • Medlem
  • Kalmar
  • 2005-04-02 18:07
Ursprungligen av Marcus Karlsson:

Dra igång Manusredigeraren och tryck på spela in. Sen gör du inställningen och stannar inspelningen. Klart.

Kanske inte fattar hur man ska göra, men just systeminställningar får inte jag att funka med manusredigeraren...

Ursprungligen av garda:

Kanske inte fattar hur man ska göra, men just systeminställningar får inte jag att funka med manusredigeraren...

Det är inte konstigt, Systeminställningar är inte inspelningsbart så det går inte att göra så. Däremot kände jag för lite lördagsspyssel och knåpade ihop ett script som bör funka (det funkar i vart fall hos mig). Klistra in det i manusredigeraren och spara det i din scriptmapp och sen kan du köra det från scriptmenyn

OBS! Var väldigt noga med att ha alla enheter inkopplade första gången du kör scriptet. Detta pga av att det är självkonfigurerande och "lär" sig namnen den första gågne så att det blir "smartare" den andra gången du kör det.

property myUnits : ""
if myUnits is not "" then
	choose from list myUnits with prompt "Välj enhet för ljud ut"
	set myChosenUnit to item 1 of the result
end if

tell application "System Events"
	open file "Macintosh HD:System:Library:PreferencePanes:Sound.prefPane:"
	set myCounter to 0
	repeat while "System Preferences" is not in (get name of processes)
		delay 1
		set myCounter to myCounter + 1
		if myCounter is greater than 10 then
			exit repeat
			error number -128
		end if
	end repeat
	
	tell process "System Preferences"
		activate
		tell window 1
			tell tab group 1 --click button 1
				click radio button 2
				tell scroll area 1
					tell table 1
						if myUnits is "" then
							set myUnits to value of text field 1 of every row as list
							choose from list myUnits with prompt "Välj enhet för ljud ut"
							set myChosenUnit to item 1 of the result
						end if
						select (row 1 whose value of text field 1 is myChosenUnit)
					end tell
				end tell
			end tell
		end tell
	end tell
	
end tell

tell application "System Preferences" to quit

  • Medlem
  • International user
  • 2005-04-02 20:32

Jag tror Herr Rönnbäck var på seminarium igår...

Ursprungligen av Wire:

Jag tror Herr Rönnbäck var på seminarium igår...

Det stämmer faktiskt !

Var du där också?

UI scripting är ju en plåga men just därför tänkte jag att man kunde ta tillfället i akt att få lite övning

  • Medlem
  • International user
  • 2005-04-02 20:52

Jo, jag var där. Men jag trodde inte Ray var en folkabuss-hippie...

Du skulle kommit fram och hälsat.

Jag höll på att skratta på mig när han sa att han inte tar frågor om Unicode, eller från "mister Richard Ronnback"

Haha, hans samarbetspartner Shane Stanley som jag har ganska mycket kontakt med, hade sagt att jag skulle vara där och trodde att jag skulle komma med en massa geek-frågor

ALLA mac-människor är gamla hippies det vet du väl? Och skön sydstatsdialekt han hade!

  • Medlem
  • International user
  • 2005-04-02 21:53

Intressant när han visade hur man skulle lägga till objekt i en lista. 'set end of listan to x' istället för 'set lista to listan & x'. Men det finns en liten varning för detta. Se kod:

set a to {}
set end of a to 1
set end of a to 2
set end of a to {3, 4}
--- result = {1, 2, {3, 4}}
set a to {}
set a to a & 1
set a to a & 2
set a to a & {3, 4}
-- result = {1, 2, 3, 4}

Helt olika resutat...

Tja det är väl bra att tänka på. Själv använder jag mig i princip alltid av den tekniken dels pga att den är snabbare när man har med stora datamängder eller stora antal iterationer, men framför allt för att den möjliggör listor med blandade värden, nästlade listor, samt inte minst viktigt, att man slipper ifrån den implicita klassomvandlingen som concatenation kan medföra.

Titta på det här exempel:

set IntactList to {}
set end of IntactList to {Forname:"Sven", name:"Svensson"}
set end of IntactList to {Fornamn:"Anders", name:"Andersson"}
set end of IntactList to {Fornamn:"Olle", name:"Olsson"}
--return IntactList
--result {{Forname:"Sven", name:"Svensson"}, {Fornamn:"Anders", name:"Andersson"}, {Fornamn:"Olle", name:"Olsson"}}

--- result = {1, 2, {3, 4}}
set MangledList to {}
set MangledList to MangledList & {Fornamn:"Sven", name:"Svensson"}
set MangledList to MangledList & {Fornamn:"Anders", name:"Andersson"}
set MangledList to MangledList & {Fornamn:"Olle", name:"Olsson"}
return MangledList

--result {Fornamn:"Sven", name:"Svensson"}


Dessutom finns det fler skillnader. Concatenation returnerar den sammanslagna strängen, men att lägga till något med "set end of" returnerar, inte som du skriver en nästlad lista, utan endast det senaste objektet, alltså

{3, 4} 
1
Bevaka tråden