SAM GREEN: Kaixo, denek. Ongi etorri gure mintegi izateko. Nire izena Sam da. HUGH Zabriskie: naiz Hugh. SAM GREEN: Eta ari gara gaur hitz egin dugu Ikusteko Javascript-a eta Web Audio API buruz. Just hasteko, hau eskema bat da Gure Mintegian agenda. Buruz hitz egiten hasiko gara zergatik webean interesa behar duzu Audio API, zergatik da JavaScript Hizkuntzaren lortu behar duzu, eta orduan JavaScript buruz hitz egin essentials-- orain bezala, Oinez duzun batzuen bidez hizkuntzaren oinarriak, eta, ondoren, buruz hitz egin goi-mailan audio API. Ondoren, Hugh batzuei buruz hitz egingo du audio ekoizpen fase eta, ondoren, demo awesome sequencer honetan Proiektu eta eraiki zuen erakusten duzun kodea. Eta gero, eta denborarekin ikusiko dugu for Pertsona bakoitzeko amaieran galderak bizi diren hemen dira. HUGH Zabriskie: Cool. SAM GREEN: Cool. HUGH Zabriskie: Cool. Babeskopia egin beharko dut. SAM GREEN: Beraz, lehenengo gauza. Beraz, gauza handia the Web Audio API buruz da, ez dagoela set up beharrezkoa. Eraiki-en dator Nabigatzaile moderno gehienetan, Chrome, Edge, osotasunean barne others-- direnak guztiak mordo zatiak handiak Jende gaur erabiliz. Beraz, ez dago martxan, Alde batera besterik ez lortzean web zerbitzari bat, joan Hasteko duzu lan Zure proiektua, eta hori handia orrian. Nahiko gomendatzen dugu hein handi batean, kontuan hartu behar duzu Chrome erabiliz Ikusteko Javascript-a web garapenerako, besterik bere sustatzailearen delako Tresna benetan indartsuak dira. Horixe esan nahi dugu, adibide gisa esanez ireki zure Javascript console-- joan Chrome sartu bada eta begiratu web orri bat duzu, eta klikatu ezkerreko duzu Inspect Element, eta, ondoren, go txiki honetan goitibeherako nahi duzu hementxe eta Kontsola batean klik egiten baduzu, zer bide berriak irekitzen ditu itxura bat ikusiko duzu komando-gonbit bat bezala asko duzula baliteke zure Mac on ikusteko, edo NAN edo. Eta besterik gabe, ahal dugun motako komandoak hemen, Garbitu bezala, eta beste komando horrelako. Aldagai sortu ahal izango dugu, bezala Javascript geroago ikusiko dugu. Eta beraz, ezer egin ahal izango dugu ere Ikusteko Javascript-a, kontsola batera egin ahal izango dugu, eta hori modu super erabilgarri bat hasteko inguruan jolasten APIak eta eroso lortzean Javascript eskuinera itzali. Ez set up beharrezkoa, hau da, benetan polita. Cool. Awesome. Beraz, gauza bakar bat gehiago gehitu. Baduzu edozein questions-- daude Zuetako askok ez dira hemen bizi, Sentitzen us-- horiek elektronikoetan gehi doan gure helbide elektronikoak dira. Zalantzarik baduzu Ez duzu nahi digu galdetzeko, bezala, oh bug bat dut nire kodea, edo zerbait apur bat gehiago zehatz da, agian, Google da lehenengo. Badira baliabide interesgarri ugari the Web Audio API han buruz. Benetan ondo dokumentatu eta nik izatea da Jende tona bat erabiltzen dute industrian, eta pertsona batek besterik ez dira fun stuff eraikitzeko beraiek. Beraz, ez dira asko izan behar du han baliabideen. Awesome. Cool, beraz, zergatik Web Audio API? Diagrama honetan pixka bat da bidea, bilakaera bat soinu webean denboran zehar hazi. Bgsound jatorrizko HTML etiketa bezalakoa zen Hori onartzen erabili Internet Explorer. Nahiko oinarrizko soinuak baino ez ditu onartzen, funtzionalitate ez zen oso sendoa, eta ezin duzu sekuentziazioa konplikatuak, edo kontrolatzeko soinu abiatzean eta gelditu oso sendo. Beraz, ez zen bereziki ondo garatu. Ondoren, horren ondoren, Flash along-- zein izan zen, Ziur duzula mutil guztiek ezagutzen duten nago Flash-- agian ez nola funtzionatzen duen, baina, zalantzarik gabe ikusi duzun da. Lortu duzu zure Flash eguneratzeko Plug-in, gauza mota hori guztia, eta hori, zalantzarik gabe barrutia luzatu funtzionaltasunari zela eskuragarri. Baina erabiltzaileak egiteko instalatu plug-in bat da, behin betiko Flash barne eragozpen bat Zure aplikazioa da, ezta? Ondoren, zeren Oraindik menpe Erabiltzaile joan eta plug-in hau aurkitzeko, eta ziurrenik ari aktibatuta aparteko urrats honek egindako off zure aplikazioa erabiltzeko hartu behar dute. Eta gero ez dago beste sarrera bat izan daiteke zure aplikazioak osoak hautsi egingo, eta bukatzen amesgaizto bat izateaz sortu da sustatzailearen, too da. Beraz, hori barrikada bat izan zen. Eta gero, hori izan zen batera ondoren, HTML audio etiketa, bertan Gehiago HTML modernoaren ezaugarrietako bat da eta bertan Zalantzarik gabe gauza asko gehiago onartzen, baina, nahiz eta gauzak egin ahal izango duzu ez ziren bakarrik pixka bat mugatua Gauzak baten ondorioz HTML duten gai izan zen. Beraz, noiz Javascript du API, Web Audio API, estandar bat bihurtu nabigatzaile zehar landu, benetan zabaldu multzoa sustatzaileei aukerak Benetan eraikinean sartu Web for cool gauza. Denbora luzez han izan egon tresnak benetan sendoa jaiotzez audio aplikazioetan, antzekoak denek daki GarageBand, eta orduan, jakina, ez dira gehiago audio nahastuz aplikazio profesionala, eta gauza mota hori. Baina ez zen bat Cloud-- benetan ona ez Cloud, bai, asmatu dut Cloud-- web bidezko plataforma garatzaileei aukera litzateke Jende aplikazioak eraikitzeko audio nahasketa egiteko. Eta gisa erakutsiko dizu zuen geroago, Web Audio API benetan indartsua egiteko aukera ematen du benetan gauza besterik gertatuko den, hau da, nahiko cool. Beraz, hori zergatik zuk agindua da Mintegian zehar ikusi behar, funtsean. Eta orain, ez dut hitz buruz Javascript batzuk besterik oinarrizko elementuak hizkuntzaren, beraz orri berean, ezin dugu izan denean buruz hitz egiten dugunean API pixka bat beranduago. Cool. Beraz, honen laburpen bat da. Ahaztu egin zait hau izan zen hemen. Bai. HUGH Zabriskie: Ez da bi diapositibak hemen. SAM GREEN: This laburpena da mugak batzuen Beste loteslea, metodo zaharrak. Eta gero, orain, gauza horiek ditugu. Cool. Awesome. Beraz, Javascript beharrekoak. Lehen gauzak lehen, ez da bat aldea nahiko esanguratsua Ikusteko Javascript-a versus in a C bezalako hizkuntza, bidean aldagai hori sortzen dira. Beraz, C, erabiltzen ditugun izatea ditut Gure aldagai idatzi behar da, ezta? Eta ez dut atsegin mota esan tekleatu, esan nahi mota I atsegin type-- esanahi bat esleitu bezala, int bat, mugikor bat, char bat. C, guk benetan erabili ziren aldagai bat sortu beharrik eta, ondoren, mota hori makila aldagai hori erabiltzen dugun denbora osoan. Eta hori ez da nahitaez okerrago, baina seguruenik gogorragoa erabili da. Cool ezaugarri bat ren Javascript da aldagai hori zer deitzen dira "Dinamikoki idatzi," horrek esan nahi dut, bat sor dezakezu sintaxia aldagai, varX berdin 5, adibidez. Jatorriz sortzen Zenbaki oso bat aldagai eskubidea azpian kanpaia somewhere-- baina I aldagai hori aldatu ahal Kate bat erreferentzia bezalako ezer egin gabe aldagai berri bat sortzeko. Ez dut kezkatu beharrik mota aldatzen ari buruz. Javascript daki motaren horren aldatu, eta hori dinamikoki gertatzen. Beraz, ez dira onurak eta hori desabantaila, nor ere lan egin zuen bezala, edonork Pixka batean Javascript jakin liteke. Badira aldiz ustekabean agian, aldagai bat mota aldatu eta Ez kudeatu mota aldatzen ari dela, eta, ondoren, zure Javascript crash-- daiteke edo salbuespena bota behar, zuk behar delako izango Oker denean motaren bat espero duzu. Cool. Beraz, scoping-- bertan bezalakoa da, badugu aste hasieran gogoratu zehar, nola ikusgai aldagai bat aipatzen da eta zer kodearen inguruan. Hori guztia oso antzekoa modu itxura C. da Beraz, aldagai oro har scoped dira Funtzio baten barruan kizkur giltza barruan, eta orduan ere badaude aldagai global scoped dela are-- aldagai bat idatzi baduzu Funtzio baten kanpoaldean, testu osoa ere ikusgai izango da. Arteko aldea One Ikusteko Javascript-a eta C bereziki, dela deklaratu global baduzu Testu fitxategi bat edozein lekutan aldakorra edozein funtzio ere ikusgai da Testu fitxategi horren barruan. Hori da zuzena, ezta? HUGH Zabriskie: Bai. SAM GREEN: Beraz, hori da apur bat ere Pixka C alderatuta funky, non beti izan dugu behar gure definizioak aldakorra lekuak gainetik erabiltzen ziren. Hori ez da hori behartuta arau bat jada, beraz, apur bat desberdinak. Eta berriro ere, besterik gabe, reemphasize den global tokiko aldagai versus Oso C. antzekoa izan duzu izen bereko bi aldagai, eta euren izenak bat egon itzalperatzen Tokiko aldagai batek horietako bat bada global zen. Beraz, antzeko mota arazoak izango dituzu batzuk direla Baliteke sartu exekutatu batzuetan zure arazoa ezartzen orain arte. Cool, beraz, aldagai da. Kontrol-fluxua, bezalako esanahia, bada-Bestela stuff-- eta loops logikoa. Beraz, hasteko, hau da, zer bada bestela adierazpenak Javascript itxurarik. Hainbat gauza jartzea lerroetan, ez da garrantzitsua. Hau da, besterik gabe konbentzio bat Era dugu egitura kodea da. Just C bezala, bat dugu ", Bada" parentesi adierazpen bat. Hori ez da zer egin esan nion. Da berriro egin nuen. HUGH Zabriskie: Trying irteteko? SAM GREEN: Ez, ez naiz besterik dezakezu gerturatu nahian. Ez du axola. Beraz, "bada" adierazpen bat daukagu ​​eta horren barruan, egoera bat dugu hori egia edo gezurra ebaluatzen, eta hori, ala ez zehazten du kode-bloke hori sartuko gara. Eta, era berean, ez dugu bat, bestela-bada, eta beste bat, erabiltzen ari bezala besterik ez dugu nahi C. Ere nahiko erosoa izan behar duzu eskubidea loops bat itzali, ere begiratzen dutelako C antzekoa dirudi. Baina nabarituko duzu berriro garela izan beharrean, initializations INT, var initializations ditugu. Eta uste dut egin behar duzu kontuz egin izan den Ziur ez duzula balioa aldatzeko I int bat kate bat, adibidez, hori delako joan portaera bitxi sor agian ez duzu Espero. Baina hau begiratzen nahiko ezaguna da, bai. Beraz, hau da, non gauzak hasteko pixka bat ero JavaScript Norbait da batetik joan C. atzeko Badira funtzio Ikusteko Javascript-a ere, eta ez dago modu bat da itxura funtzio bat aldarrikatu moduko C antzekoa, eta Gero beste bat dela itxura mota desberdinak. Lehenengo bertsioa, bertan hemen ikusi ahal izango dugu, da mota C-bezala, non , esaten dugu hau funtzio bat da, izen bat eman, eman argumentu kopurua, eta, ondoren, funtzio-aren edukia horiek kizkur giltza barruan joan. Adibide bat ikusiko dugu bigarren batean argudioak. Hurrengo lerroan Berriz, ikusiko dugu oh, Hemen izeneko aldagai bat da "myFunction," eta berdina dugu honetarako generic gauza funtzio hori ez dirudi ezer gertatzen baimena izan behar du. Arrazoia, hori da desberdina baino C dela Javascript Zer da hizkuntza funtzional bat deitzen da, edo elementu funtzionalak ditu, eta horrek esan nahi du funtzioak balioen, egia esan. Eta horrek esan nahi du ezarri ahal izango ditugu funtzio bat berdinak aldagai bat eta, ondoren, funtzio hori mugitu Inguruan, pasa ezazu argudio gisa, gauza mota guztiak egin duten funtzio bezala. Beste gauza bat note-- funtzio idazten dira argumentuak kopuru jakin batekin. Funtzio baten adibidea ikusiko dugu hurrengo irudian argumentu batekin. Baina Javascript borondatea ez duzu Yell saiatu baduzu funtzioa erabili Oker argumentu kopurua. Besterik ez da egingo bere onena egin ez, gainditu baduzu, esanahia, Hori bat espero funtzio bat deitu argumentua ez, guztiak batera, argumentu gertatuko den da zerbait izango da bere onena saiatu eta kode hori gauzatzeko, eta azkenerako agortu bada salbuespen bat edo Akats baten sartu, bota egingo da salbuespena dela eta besterik gabe, gorde va besterik ez da modu bat Ikusteko Javascript-a egiten du lan hori. Bai. Ikusleak: Zer gertatzen da argumentuak ez da gehiegi? SAM Berdea: So Galdera zen, zer gertatzen argumentu gehiegi badaude? Eta erantzuna da Ikusteko Javascript-a izango da besterik direnak direla alde batetara Direnak espero da ondoren. Saiatuko funtzioa exekutatu deitu balitz bezala besterik ez da lehen bi izan zen. Eskuin? HUGH Zabriskie: Hori da, bai. Era berean, ez bada argumentu gutxiegi dira, Mota besterik ez da ematen guztietara nulua argudioak ez du balio edozein da. SAM GREEN: ezin diren benetan izan handy, baduzu funtzio bat idatzi nahi duten a aldakorra zenbakia argumentu hartzen. Balio lehenetsiak ezarri ahal izango duzu funtzioaren definizioa, eta hain zuzen, ez ikusi ahal izango da sarrera ez da han. Beraz, pixka bat hitz egin nahi dut Azken bala honi buruz informazio gehiago puntuan, funtzio da balioak dira. Hau adibide bat dela da Pixka Haluzinatzeko bat zuk besterik irakurri zuen, eta ez dut uste badu zer gertatzen den bigarren bat buruz. Beraz, dezagun besterik at Lehen lerroan hemen. Aldagai hau, f1 daukagu, esan dugun hori gauza hau ez funtzio bat da. Eta funtzioaren edukiak console.log dira ('kaixo'). You console.log gisa pentsa dezakezu Javascript printf baliokidea. Beraz, zer gertatuko da, badugu kode hau exekutatzen gure nabigatzailean, out inprimatu izango da kate bat. Dut hori frogatu ahal. Ikusleak: log, ordea, ez du hori esan nahi da nonbait grabatzen ari? SAM GREEN: Bai. Beraz, erakutsi dut zer gertatuko. Beraz, galdera zen, zer esan log esan nahi? HUGH Zabriskie: Beraz console.log C. for printf bezalakoa da SAM GREEN: Beraz console.log printf bezalakoa da, beraz console.log hau badut ('kaixo'), eta I deitu duten, kate "kaixo" lortzen inprimatutako kontsola. Hau kontsola da. Besterik ez da printf, non bezalakoa da inprimatzen estandarra da. Eta minutu bat ikusi dugu, baina hau da, benetan kontsola objektu aipatuz, eta objektu hori metodo bat deituz. Hori zentzu gehiago egin beharko Minutu batean dugunean buruz hitz egitera zaitez Ikusteko Javascript-a objektuak, baina besterik ez nuke aipatu dela pentsatu dut. HUGH Zabriskie: Gara erabilitako C, eskuinera programa handi bat idatzi ohi dugu nagusian ezer egin. Baina zer da cool Javascript egoeran dagoenean interpreter mota hau izan dela eskailerak denbora errealean, hain lerro hartzen lerroz, besterik ez da interpretatu ahal duten lekuan bertan. Eta pista mantentzen aurretik duten exekutatu gauzak, beraz, tresna nahiko erabilgarria da console.log, edo kontsola erabili, oro har, besterik jolasten Inguruan Javascript batera. SAM GREEN: Beraz, atzera joan honetarako Esate kodea bigarren lerroa Hemen nahiko nire buruan mind-boggling da. Lehen aldiz, hau irakurri nuen, zen bezala, zer gertatzen da? Beraz, zer gertatzen da, hau funtzioa adierazpena dio, Izeneko funtzio f2 bat dut f-en argumentu bat espero da,, eta gero deitzen dela funtzioa, f, eta horrek zen argumentu gisa pasa da no argumentuak bera. Beraz, hori nahasgarria izan liteke. Hau ulertzen dugun f2 f1 gisa hartzen bada Argumentu bezala, eta, ondoren, f2 barruan, f lortzen called-- bertan bitartekoak kode-lerro hori, bi lerro hauek ondoren kodea, "kaixo" emaitzak ari kontsola inprimatuta. Izan ere, gainditu ahal izango dugu funtzio inguruan balioak gisa ondorioz sortu gehien bat izateaz Javascript ezaugarri indartsua programazio hizkuntza gisa. Guztien kanpoaldean awesome gauza egin daiteke, Besterik ezaugarrietako bat bezala Bide dagokionez hizkuntza gauzak erraz egiten dela programatu eta aukera ematen du ez direla bereziki gauzak egiteko Sarean ondo egokitzen, programazio funtzionala eta funtzionala programazio Javascript alderdi da gehien bat kontzeptu indartsu dagoela galdetu didazu Javascript existitzen. Cool. Beraz, hurrengo gauza. Funtzionalak izateaz gain, Javascript elementu ere badaude objektuetara bideratutako direla, hau da, oso bat buzz informatikako hitz popular. Objektuetara bideratutako programazioa benetan popular gauza bat da. Ikusteko Javascript-a horren bertsio bat du, nik uste dut hor balio bakoitza, halaber, objektu bat, eta horrek esan nahi objektu bakoitza Balio kopurua batzuk biltzen ditu. Horrela erraz balioak, antzerako zenbaki oso bat, varX bezalako berdin 5, Objektu hori besterik biltzen balio bat dela. Baina, era berean, egoera bat irudika dezakegu where-- C egoerak pentsatu ere non egin nahi dugu structs zerbait, adibidez, zenbait biltzen balioak elkarrekin eta egiten Oso erraza gauzak inguruan pasatzeko. Orduan objektu bat Javascript dago. Garrantzitsua da gogoratzea objektuak bilduta esaten dut Balio kopurua batzuk elkarrekin, funtzio dira, halaber, balioak, eta horrek esan nahi du funtzio hori halaber Javascript objektu baten barruan egon. Eta horregatik da garrantzitsua da hau, guk berriz sarritan metodo bat deituz pentsatzea Objektu bat hori da on beste termino ezagun baten objektuetara bideratutako popular hizkuntzetan, ezberdintasun bat hemen da, metodo bat hori guztia Javascript da balio bat da objektu baten barruan gordeta Hori action-- batzuk seguru burutzen direla barruan beste balioak erabiliz objektu horren, baina ez du zertan. Beraz, egoera bat imajinatu dezakezu, I zoro bat pixka bat asmatzen, non inork metodo bat izeneko duzu objektu beste on oposiziorako, adibidez. Beraz, pixka bat horrela funky da. Eta metodoak ere alda dezakezu diren objektu batekin lotuta Metodo hori esleitu Funtzio berria, eta hori ere Nahiko ezberdinak objektuetara bideratutako hizkuntzetan, non behin objektu bat aldarrikatzen dugu eta instantziatu da, ezin dugula dira metodoak aldatu objektu horrekin lotutako jada. Beraz, nahiko desberdina da. Cool. Beraz, hona hemen adibide bat, lehenik eta behin, ekintzan objektu baten. Hau da, zer deitzen objektu soil bat izango da, eta horrek esan nahi du ez duela inolako izen jakin, ez du klase bat izan, besterik balioen egokitzerik batzuk da. Eta hori itxura modu da, daukagun kanpoaldeko kizkur pare honi giltza hemen JavaScript den adierazteko eta esan, hau objektu bat da. Haren barruan balioak Barruan balioak bakoitzeko dira objektu duten egin beharko lukete bilduta elkarrekin egon. Eta objektu horren barruan, orduan dugun gako bikote, non gakoa izenari dagokionean objektuaren barruan balio du, eta beste side-- colon hemen kontrako benetako balioa da Hori gorde behar. Beraz, hemen ikusten duzu bat dugula balio Sam FN izeneko gakoa, Koma bat, eta jarraian, hurrengo sarrera kalera esanez. Ondoren ln izeneko gako bat, berdea balioa duten, Koma bat, eta jarraian, jarraian "inprimatu" hau da, funtzio balio bat izan da joan hori kode lerro hau egin behar zuen. Dezagun urrats bat atzera eta deskonprima zer gertatzen da hemen. Beraz, hau da, pixka bat zaila, eta zerbait berria ikusten ari gara lehen aldiz. The keyword "hau" gauza berria da Hemen ikusten ari gara, eta zer honek da, gaur egungo aipatzen du esparrua oposiziorako, ezta? Beraz, esan, hau dugu modu guztiak atzera seinalatzen object-- osoan honetarako denean this.fn egiten dugu, modu guztiak joan atzera goaz Objektu hau, joan fn balioa emateko eta Sam, tira modu guztiak Atzera, makila hemen, eta ondoren, aurrera egiteko. IKUSLEEN: Recuperación batera, da hori delako parametroa egin definizio? SAM GREEN: Beraz, galdera zen, da berreskuratze delako parametroa egin definizio? Bai, erabat. Zer gertatuko da joan, dot honek JavaScript behar dio, Ados, naiz balio batzuk lortzen dut Neure burua objektu honetatik. Eta gero, begiratu egingo da, sarrera bat egiteko fn deitzen, eta bertan aurkitzen badio, Gaur bertan itzuliko da egingo balioa beraz, ez da Sam. Baina, gainera, ezin idatzi dut Hori ez zen, hemen zehaztutako zerbait, eta, ondoren, besterik ez litzateke itzultzeko undefined-- bertan Gauza bat da JavaScript dezake egiten da, eta horrek abantaila izan ditzake, baina also-- da typo bat izanez gero, errore bitxi eragin dezake. Beraz, besterik ez da saiatu aurkitu edozein dela ere esan nahi duzun aurkitzeko eta nik ez joan kexatu izango ez balitz aurkitu. Besterik ez dugu esan, ez nuen aurkitu da, eta ondoren, aurrera egiteko. Beraz, zehaztugabea izango litzateke, plus hutsik, plus abizena. Bai. Eta gero, ikus dezakegu hori badugu zitekeen gero, behera eta access-- eta tf.print () parentesiekin deitzen duguna. Honez inprimatu deitzen dugu argumenturik funtzioa, ezta? Baina esan dugu, besterik ez bada tf.print () puntu eta koma, parentesi gabe, Hori egingo zukeen guztia tira balioa funtzioa, baina ez benetan deitu zion. Cool. HUGH Zabriskie: Beharrezkoa objektu bat egin dugu? SAM GREEN: Noski, utzi egin dutela. Beraz, hau mugitu ahal izango dut kontsolara adibide. Objektu bat izan dudala hura. Beraz, hau objektu sinple bat da. Hau bi dituen objektu bat da Bi gakoei balioak, bi gako balioa bikote. Beraz, ondoren I gordetako balioa sartzeko x.x1 eginez objektu honen barruan, adibidez, eta 1 itzuli dut. Halaber, x.x2, eskuratu balio bat atzera. Eta orain benetan cool gauza da, ahal dudan benetan zerbait gehitu objektu honi I sortu ondoren Nik da. Beraz, imajina dezakezu, dezagun esan funtzio bat daukat. HUGH Zabriskie: You egiten filmea idatzi dute. SAM GREEN: Oh, hori da gogaikarriak. Zer dut gogoko zuen? Oh. Hemen gara. Cool. Beraz, besterik ez oraindik honen funtzioa, f, hori hau da, gaur egungo joango Objektu eta inprimatu this.x1. Beraz, nik deitu f besterik ez balitz moduan berez, ez da ezer gertatzen , gertatuko den eskubidea, ez dago x1 ez dagoelako objektuaren nik aipatuz eremuan. Baina, x.f = f, eta, ondoren, esan nahi nizuke dut deitu x.f (), naiz atzera 1 lortu nahi dut. F funtzioa dela orain Objektu x lotutako, izeneko gakoa x1 ditu balioa 1 lotutako, beraz, this.x1 deitzen duguna, da zer da bilatzen aurkituko joan eta izan balio bat inprimatzeko gai. Beraz, adibide bat besterik ez da ero gauza motatako Ikusteko Javascript-a objektuekin egin dezakezu. Beraz bertsioa izan zela Bertsio orokorra, esanahia objektu bat hau erabiliz sortu dugu parentesi notation-- giltza idazkera, rather-- eta hori da erabilgarri badago besterik ez dugu Objektu jakin baten adibide bat, baina zer bat baino gehiago izatea nahi badugu Mota berekoak? Eta horri erantzuna Galdera da, ez dira gauza Klase baita izeneko JavaScript. Funtzio bat sortu ahal izango dugu, initialization nolabaiteko egiten atzerriko objektu bat, eta esango dugu, bezala, Nire klase beraz izenean berrerabilgarriak object-- of berdinen funtzio hori ezartzen duen gora. Beraz, zer parekoa izango litzateke objektu bat sortzen ari da hori Besterik ez litzateke, kizkur giltza, str, bi puntu, Hau kate bat, puntu eta koma, kizkur. Hori generikoa izango litzateke Objektu abiarazi dugu, Bat aldea on izanik hurrengo lerroak prototipoa bat sortzen dugu, eta horrek esan gako lehenetsi bat da, gehitzeko gure objektu dugula Hemen azaltzen diren balio ditu. Zentzua, hori denean berri bat sortu dut MyClass objektu honen instantzia, nik nahi izan du barruan aurrez eraikitako joan Balio bat str izeneko eta balio bestera myPrint deitzen zaio, hau da, joan funtzio bat izan. Awesome. Great. Beraz, azken gauza Javascript buruz esan benetan zer baliagarria dela eragiketak asynchronous deitzen dira. Asynchronous bitartekoak da dugun eragiketa batzuk itxaron mugitzen dugu aurretik osatzeko an, baina, aurrera egiteko zain gauden bitartean eta, ondoren, zerbait gertatuko geroago. Eta zer esan nahi dudana da, zuk egoera bat non irudika dezake eskaera bat bidali behar dituzu Web zerbitzari batzuk nonbait, eta nik itzuli nahi baduzu bidali joan Datu zati handi batzuk, ezta? Eta zure erabiltzaile ezin itxaron Bitartean hori dela-eta, eta ez da ezer izan zitekeen garai hartan joan. Baina hori ez da diseinu handia, ezta? Ez duzu nahi web orriaren izoztu. Erabiltzaileak zer nahi baldin bada klik goitibeherako menu bat? Ez da diseinu patroi handi bat. Horren ordez, funtsean, zer Ikusteko Javascript-a duela dio, Ados, egin eragiketa hau asinkronikoki. Beraz bezala, atzealdean itxaron, eta orduan, eragiketa egiten da, callback deitu funtzio funtzio batzuk deitu, ez den seinalerik action-- batzuk Eragiketa dugu amaituko zain ziren egingo da. Eta arrazoia hori da super indartsua da, Zerbait egin dezakegu, argudio bat pasatzeko, Zerbait egin, eta ondoren itxaron zerbait gertatuko. Ondoren, zerbait hori behin osatzen du, callback bat deitu ahal izango dugu. Hori da benetan erabilgarri uzten duelako Web Audio API dituzten gauzak egiten digu, adibidez, bezalako karga batekin urruneko zerbitzari batetik audio fitxategia to itxaron beharrik gabe audio fitxategi osoa kargatzen den, horrek benetan izango litzateke erabiltzaile esperientzia txarra. Cool. Azken pare buruzko oharrak arazketa, hau geroztik Gauza bat egin behar joan zaren da Zure proiektuaren baitan, bermatuta. JavaScript kontsola aipatu dut. Ezaugarri super erabilgarria da Nabigatzaile moderno guztien, Eta benetan lortu animatzen dugu erosoa kontsola erabiliz, ona lortzeko Javascript nahi baduzu. Da super erabilgarri arazketa, baina, aldi berean da benetan kalkulatzen baliagarriak out nola API bat erabili da. Benetan aukera ematen du esperimentazioa erraza batzuk idatzi behar izan gabe kodea, eta, ondoren, konpilatu. Ez duzu urrats horiek guztiak egiteko. Zuk besterik idatzi daiteke kode batzuk lerro bat sartu, eta, ondoren, berehalako feedback lortu kode lerro bat ala ez worked-- oso praktikoa. Eta, gainera, note-- tekniko bat besterik ez JavaScript kontsola adibidea da REPL-- bat beraz, R-E-P-L da, REPL of, irakurri dago, ebaluatu, inprimatu amaitzen da. Gauza batzuk idatzi behar duzu irakurri beharko da zer idatzi duzula, ebaluatu egingo da, eta inprimatu izango da etorri irteera, eta, ondoren, berriro hasi beharko da. Hori aukera ematen dizu azkar joan zirkuluak errepikatzean, hau da, benetan cool. Azken benetako honetan note-- asmatu dut benetako azken nota da, bai. Nola erabiltzen dugu Javascript? Beraz, lehenik eta behin, inportatu ahal izango dugu Script etiketa bat erabiliz goiko edo beheko HTML baten at fitxategia edonon HTML fitxategi baten barruan, benetan. Eta gidoi etiketa bat barruan daude bi azpi-modu Javascript inporta. Izatea Lehenengoa da Aparteko Javascript fitxategia inportatu dugu bere osotasunean dela, edo gidoi bezala kodea azalera dauka edukitzea , hasteko, eta ondoren backslash gidoi amaierara. Eta gero, idatzi besterik ez dugu HTML fitxategia barruan Javascript. Horiek bi modu daude. Ezin duzu hura HTML barruan. Ikusleak: bestea baino hobea al da? SAM GREEN: Galdera izan zen, da bestea baino hobea. Beraz, bai, Kodetze praktika gisa, eta, gainera, diseinu praktika bat bezalakoa da. Bi arrazoi daude Horregatik, hobe izango da agian. Lehenengoa da, zure kodea bat egiten du asko gehiago irakurgarria zure HTML guztiak galtzen da leku batean, zure CSS guztietan da beste leku, zure Javascript guztia hirugarren tokian dago. Eskuin? Uste dut dagoeneko hitz egin behar dugu Horri buruz sections-- bezalako CSS zer Hori is-- eta doa beste fitxategi batean askotan. Beraz, antzeko kontzeptu-mota hemen. Zuk ere, pentsa dezakegu Javascript baino gehiagotan berrerabili beharko litzateke HTML orria, edo agian bat HTML orrien franko, eta Javascript izatea bat sartu refactored fitxategia inportatu dezakezu leku bat baino gehiago sartu ahalbideratzen kodearen izan Modu mantengarriak. Bat egiteko imajinatu dezakezu Ikusteko Javascript-a aldatu eta hori aldatzeko beharrik 100 fitxategi desberdinetan. Eta horren ordez, besterik ezin dugu aldatu da bat, hau da, modu ahaltsuagoa ere. Ba zure galdera erantzun dut? Cool. Era berean, ezin dugu kontsola batean idazten, Aurretik aipatu dugun bezala. Eta berriro ere, azken note-- bat Web Audio eraikita dago, ez duzu ezer kargatu. Cool. Ba al dago edozein galdera, egin behar duzun Javascript buruzko edozein galdera gehiago, Aurretik mugitzen? Ikusleak: [INAUDIBLE] SAM GREEN: Ondo da, cool. Beraz, gaur egun, baina behar API buruz hitz egingo da. HUGH Zabriskie: Cool. Mila esker, Sam. SAM GREEN: Dudarik gabe. HUGH Zabriskie: Awesome, beraz, mugitu on dugu Javascript from. Beraz batzuk buruz hitz egin dugu Ikusteko Javascript-a funtsezko elementua, eta horiek aldagaiak funtzioak dira, objektuak, aldagai gisa funtzioak, loading asinkronoak. Hauek dira gauza guztiak egingo duzun ikusi Audio Web erabili ahala. Beraz, ari gara hitz egin da lehen buruzko goi-mailan. API bat da, beraz, zerbait eraikitzen ari den, Sam esan bezala, eskubidea Javascript sartu kontsolan erabili duzula. Eta, egia esan, besterik C bezala ++ kodea hori benetan Chrome txertatua eta Firefox, eta nabigatzaile hauek guztiak. Beraz Web ideia nagusiak Audio da behar duzula audio gasbide-mota hau, ezta? Beraz, zure audio datuak datorren inprimaki batzuk. Badira hiru forms-- nagusiak mota osziladore, duzu bertan sine olatu bat sortzen du, kosinua olatu, nola funtzionatzen duten ikusteko goaz. Beste bat oso ohikoa, noski, MP3 bat da. Beraz, agian hasten zara Abesti bat, eta, ondoren, iragazle batzuk egin nahi Hori eta irteera hori -bere iturri posible bat izan daiteke. Eta gero, benetan cool bat Bat mikrofonoa da. Beraz, batzuk oso erabili ahal izango duzu Javascript oinarrizko deiak sarbidea izateko mikrofonoa, eta beraz baduzu Aplikazio bat egin nahi zelaia detektagailu bat bezala, adibidez, hori ere hartzen du Zure ahotsa eta zifrak egindako the pitch-- duten bidea oso erraza. Mota besterik ez duzu irakurri da ere, irudikatu maiztasuna, eta, ondoren, zenbaki bat irteera. Beraz, nola lan egiten duten ikusi dugu, baita. Helmuga izango da gehien bat non audio datuen irteera da. Beraz, oro har, honelakoxea Zure ordenagailu eramangarria hiztun. Beste aukera bezalakoak dira ScriptProcessorNode-- bat batean nodo lortu dugu segundo baina funtsean, bai soinu ari zara jartzen egindako Zure ordenagailuaren bidez hiztun bidez, edo ari da mota grabatzen duzu, beraz, hura gordetzeko zaren audio datu gisa. Beraz, agian norbaitek sortzen bada musika zure aplikazioa eta gero Hori grabatu eta agian like nahi duzun esportatu SoundCloud den, adibide erabiliz Hori dela egiteko modu bat izango litzateke. Fun stuff guztiak, bertan buruz hitz egingo dugu, bi puntu horien arteko gertatzen, non kargatu dugu musika eta, ondoren, irteera da. Beraz, ez dut bost buruz hitz egingo Bigarren batean audio ekoizpen fase. Izeneko gauza daukagu AudioContext bat, eta horrek Wrapper txiki honetan hemen ikusten dugu. Funtsean zer AudioContext is-- bagenu JavaScript kontsola joan oraintxe, bat sortu ahal izango dugu oraintxe. Just REPL adibide bat, ezta? Irakurtzen ari gara, , ebaluatzeko eta bistaratzen. AudioContext egoera global bat da. Honez egitura bat, objektu bat da Hemen, informazio mantentzen eta hura Gauzak buruz ari da audio lotutako pantailan. Adibide bat uneko ordua da. Hau da zenbakia kontatzen segundo, oso, hain zuzen, Web orrialde geroztik kargatu. Beraz, hau da, benetan erabilgarria erabili ditzakezun jabetza gutxi. Honez irakurri sor baitezakete benetan uste dut Balio ezartzen saiatuko dezakezu. Ezarri esango du, eta, ondoren, inprimatu baduzu , berriro ez egin benetan da nahiko lan. Beraz, ez da irakurri-bakarrik modukoak dira Ikusteko Javascript-a lortzeko zailtasuna. Hau da, benetan erabilgarria bada motatako sinkronizatzen ari zarela desberdinak asko Informazio, zaudenean nolako musika desberdinak jolasten. Inork benetan erabilgarria Another Testuinguru helmuga. Zalantzarik gabe, nahi izanez gero, izan hau zeure kontsola eskuineko ari da orain. Beraz, hau AudioDestinationNode da. Funtsean, zer dio honen da, Irteerako joan da? Beraz, ez da benetako bi aukera daude hemen. Normalean, lehenetsiak, besterik zure hiztun da, beraz AudioDestinationNode funtsean, dio daude zero soinua irteerak datozen, bidaliko hizlari. Beraz, oro har, ez duzu horrekin jolasteko aukera. Oraindik benetan erabiliz interesa baduzu ScriptProcessorNode grabatzeko, betiko tiro me an email geroago delako hori apur bat zailagoa da. Baina, oro har, Oraindik besterik mota Soinu-irteera inprimaki batzuk ere. Beraz, cool, hemen salto egingo dugu atzera. Ikusleak: sentitzen dut. HUGH Zabriskie: Bai. Ikusleak: hitz egin esan duzu, ez dakit you aurrerago buruz. Ezin hori komunika duzu Pro Tools-ekin? HUGH Zabriskie: Pro Tools With? Ikus dezagun. Ez dut uste. Beraz, bezeroak artean gertatzen da, Ikusteko Javascript-a da kontsola, eta zure benetako ordenagailua, da, oro har, hori da mota zerbait mugen gainetik, baduzu Izango da, mota the-- izaeraren arabera diseinu gauza baten antzeko zerbait da, baina nabigatzailea bereizi mantentzeko saiatzen zara erabiltzailearen benetako ordenagailutik. Oro har, gauza bakarra Oraindik ahal izateko sarbide mikrofonoa edo kamera da. To Oraindik ez duzu gai, I ez dut uste, erabili Pro tresnak. Hala eta guztiz ere, sortu baduzu Pro Tools pista batean, esportatutako, hori kargatu ahal duzu Hemen ere, iragazi, adibidez, Prozesu hori, eta erregistro bat sartu dela Audio helmuga edo, no-- esfera bat Processor Nodoa. Eta gero, hortik aurrera, ezin duzu esportatzen dituzten SoundCloud den, zuk bidal zezakeen email bat, edo zuk nahi ez duzun. Baina ez oztopo arin baten antzeko zerbait da Zure ordenagailuan musika egiten arteko eta musika-line egiteko. SAM GREEN: Eta hori da Ez API hau berezia. Segurtasun Chrome ezaugarrietako bat da, eta Beste nabigatzaile moderno guztietan uste dut. Nabigatzaileak burujabe bizi den. Beraz, adibidez, web orri bat ezin Ikusteko Javascript-a erabili soinua piztu Zure hiztunek, adibidez gainean. Edo, ezin da itzali ordenagailua. Eta ez dago tarteko puntua da Bi gauza horiek artean, eskuinetik, beraz, bai bat behar duzu abstrakzioaren, edo ireki zabaltzean segurtasun uzteko akats asmo txarra programatzailea egin edozein dela ere nahi zure ordenagailu eramangarria dute. Eta horregatik Chrome burujabe bizi den. HUGH Zabriskie: Bai. Ez duela zentzurik? Cool, cool. Besterik ez nintzen joan adibide bat erakutsi. Hau da, nahiko askoz gisa urrun, lortu duzun bezala terminoetan ren erabiltzailearen ordenagailuan sartzen ari da. Baduzu USB teklatu bat konektatzean, zerbait erabili ahal izango dituzu webean izeneko MIDI API, ez dugu benetan hemen mintzagai, baina hori da beste API da gutxienez Chrome-- sartu berriro eraiki, hau da, zergatik maite dugun Chrome-- Uste dut Firefox edo Safari, hau gauza erraza da google-- nabigatzaile ezberdinak dituzte bertan euskarri ezberdinak APIak ezarri dituzte dute. Baina teklatu bat konektatu nahi baduzu eta informazio horrekin lan egiteko, motatako teklatuak bidaltzen Ordenagailua den informazioa eta gero online hori erabili, API hau Hor duzula litzaidake lanean. Cool. ONDO DA. Beraz, azkar mugitzea hemen. Nola ari gara denbora? HIZLARIA 1: 15 buruz. HUGH Zabriskie: 15 minutu geratzen? Ados, cool. Beraz, hemen lasterketa egingo dugu aurrerago. Beraz, funtsean, puntu nagusiak gasbide gisa honetako pentsatzen dela gasbide-urrats bakoitza audio nodo multzo bat da. Gure iturburu, demagun, oszilatzaile bat da. Osziladore nodo bat sortu behar dugu. Eta besterik ez da mota du funtzio txikiaren eta guztiak ari dira oinarritutako egindako Audioaren testuinguruan hemen. Ikusleak: When, esan du osziladore, esan nahi du horrek egia esan, literalki joan bi polo desberdinak atzera eta aurrera? HUGH Zabriskie: Ez, dirudienez irudikapen digital bat. Benetan C ++ ezarri. I benetan ez specs ezagutu benetan nola ezarri, baina hori guztia, datu bitarrak bezala lanean. Egia esan, bai. Hori esanez egingo litzateke, eta ahal nuen benetan, nahi izanez gero, You more apur bat bidali izan dut nola uhin buruzko informaziorik formatu digitalean izatea mantentzen dira. Ados, cool. Beraz sine bat bezala tonu bat sortzen ari garen olatuen edo horrelako zerbait, agian, 440 Hertz. Oszilatzaile bat sortu dugu. Bolumena ezarri nahi badugu, ezer konektatu GainNode batera, bertan .creategain egin ahal izan genuen. Hori da zure bolumena ezartzen du. Edozein kalera pasatu ahal izango duzu options-- bai bestearen, beraz, audio buffer-iturria nodo da non agian, hasi zaren kargatuta MP3 bat gordetzeko. Biquad iragazkia iragazpenaren da Oinarrian guztiak hartu nahi duzu Abesti bat, edo horrelako zerbait. Jainkoa debekatzeko hartu nahi duzun oinarrian abesti bat. Eta AudioDestination nodoa da, berriz ere, atsegin non gure amaitu da. Oraindik ikusten inoiz interesa baduzu ahalik eta hainbat aukera guztiak, besterik fitxan joan eta utzi auto-osoa etorri. Eta zuk sortu ez bada, ikusiko duzu etorri Hori sor dezakezu gauza desberdinak. Dinamikoak sor ditzakezu gidoi prozesadoreak, I ez dakite zer dela da, kanal fusioak nahasteko eta kanal splitters eta hori guztia. Cool. Beraz, hau da, besterik gabe, gasbide baten adibidea. Beraz, hiru iturri buruturiko ditugu. Agian hauek uhin dira, Agian hauek MP3s dira. Norberaren igaro iragazkia, horrek beste bat ohitu desitxuratu beste Norberaren panoramikoaren ezker eta eskuin. Gauza mota guztiak egin ahal izango duzu, eta ezagutu dute mistoak inguru elkarrekin, eta, ondoren, egindako audio datorrenean Amaieran, helmuga gisa. Hau zer gehiago adibidea da konplikatua Web Audio kodea itxura. Horiek guztiak sortzen ari zara hainbat objektu hementxe Ez nago horren ziur. Ez, ez du handitzeko. ONDO DA. SAM GREEN: ez duzu Control, Scroll-Up. HUGH Zabriskie: Kontrol Scroll-- SAM GREEN: Ez, ez. Control-- HUGH Zabriskie: Oh, Control, Zoaz? Oh, gotcha. Bai. Wow, Laguia, Laguia. ONDO DA. Ez dut egin dela. Beraz, bai, hau ere lehen Hemen atalean, ikusiko duzu horiek guztiak sortzen ari gara Testuinguru kanpo nodoak. Besterik ari gara piecing elkarrekin, bigarren zati batean Connect izeneko funtzio honen bidez. Hori da benetan gako bat Web Audio funtzioa. Besterik ez du esan Behin hori egin Nodo bat soinuarekin batera zerbait, pasa ezazu hurrengo nodo. Beraz iturri izan dugu, Analizatzaile konektatuko da, analizatzailearen zerbait egiten, doa distortsio da, eta, beraz, eta helmuga hementxe behealdean. Cool. Ados, beraz, jarraituko dugu, aurrera jarraituz. Pipeline-- du berriro ere, horiek the oliobideak ohikoena dira, beraz, atsegin gauza horiek guztiak buruz hitz egiten dugu distortsio, okertu, guzti hau. Oraindik benetan interesa baduzu Gauzak Pro tresnak erabiliz, horiek ziurrenik interesatzen. Hala ez bada, agian, besterik ez duzu soinua jolastu nahi, edo, agian, besterik nahi ez soinua bolumena ezartzeko. Horiek bi moduko ohikoenak dira audio produkzioan hodiak. Berriz ere, modu hori hartu ahal izango duzu bezala oscillator-- bat beraz, dezagun egiten duten demo hementxe. Beraz, goazen bat sortu nahi du simple audio testuinguru hemen, eta goazen horren Gure osziladore sortzeko. Beraz, hori da, berriro ere, besterik ez gara deitzeko Sortu osziladore joan. Frekuentzia bat ezarri goaz , hori 440 Hertz, guztion gogoko. Gero lotzen dugu Helmugara point-- bertan hiztuna da, eta beraz, Testuinguru helmuga. Azkenik, esan besterik ez dugu, hasteko zero Hemendik aurrera segundo, eta ez du soinua izan dugu? [Dei-] HUGH Zabriskie: Hemen gara. Sine olatu bat besterik ez da. Ados, cool. Eta gero, hori uzteko dugu. Ikusleak: Non egin iritziei datoz? HUGH Zabriskie: Atzeraelikadura? Oh, seguruenik gure mikrofonoak. Beraz, bai, hori nola egin behar duzun da. Eta egia esan, izan badut mantendu martxan da, zuk maiztasuna izan dezake exekutatzen ari den bezala balio, beraz, gauza dibertigarria inguruan play da. Cool. Hori da beti eder bat aurkeztu. SAM GREEN: Ez dugu hori pentsatzen, ba al dugu? HUGH Zabriskie: Bai, gaizto bat da hori. Beraz, buffer loading-- bat erakutsi dut oso amaieran horren adibide. Hori da, MP3 batekin kargatzen. Eta mikrofonoa, funtzio bat besterik ez duzu erabili Navigator.getUserMedia izeneko () Erabiltzaile sarbidea eskatzeko Informazio hori egiteko mikrofonoa. Hemen iragazteko Nik besterik mantentzeko honetan mugitzen. Hau maila nahiko altua da, baina iragazkiak besterik uzten dizu [Beeping] Iragazketa ere ahalbidetzen duzu arrosa bezalako gauzak sortzeko zarata, zarata marroia, zarata zuri. Zarata hutsa, sortu nahi baduzu bertan pertsona batzuk nahastea maite dituzten inguruan, Web Audio erabili ahal izango duzu iragazketa ez da egin behar. Audio Panning-- beraz imajinatu duzu joko bat idazten ari bada eta soinua nahi duzu soinua bezalakoa da da, datozen bezala, pantailan zehar tiro, zuk Audioaren panoramikoa erabil daiteke Kono mota hau sortzeko, bertan antzekoak nahiko mathy da, baina, egia esan, oso cool da lanera baduzu, eta ez da ona batzuk tutoretzak Gainean bidali nahi dut bat. Funtsean, mota egin ahal izango dituzu soinua sortu zerbaitek joan 3D modu batean. Eta DJ interes badaukazu, ahal duzun hasteko nahastuz eta abestiak lausotzen zeharkatzeko. Hau besterik ez da batzuk oso oinarrizko kodea, aurretik, funtsean, zer egin nuen. Hau bolumena ezartzen osziladore, beraz, gure osziladore sortzen dugu bertan uhin sortzen. Gure GainNode sortu dugu Gure maiztasuna ezarri, eta ondoren etorri den osziladore konektatu GainNode, eta gero, funtsean aldatzen zenbat seinale da onartzen bidez. Baina benetan, digital bat da gauza, beraz, gehiago just da bai. Hori ez da zer benetan gertatzen ari dena, baina hori da bizitza errealean zer gertatzen den irabazia batekin. Ikusleak: --quantization bolumen parametro baten? HUGH Zabriskie: Barkatu? Ikusleak: Da bat kuantizaturikoa bolumena parametroa? HUGH Zabriskie: Bai. Eta hau da gauza bat benetan naiz da zaien nire ezagutza ere, nola irabazia Maila digital batean egiten du lan. Badakizu benetako dut seinaleak, da, funtsean, kontrolatzea, zenbat Oraindik seinalea zabalduz. Beraz, bai. Bidali dizut buruz informazio gehiago nahi dut, bitxia izan delako litzaidake benetan Horri buruz gehiago jakin nahi. Baina funtsean parametroak dira, bata fold-- da ozenago signal-- eta zero da ez seinalea, edo ez duzu edozein soinu entzuteko. Albo batera egingo dugu demo denbora delako horretarako aurretik, funtsean, zer egin nuen. Eta berriro ere, Context.Destination du Audioaren helmuga nodo da. Awesome, OK. Beraz, ez dut azkar bat bi demoak egin. Nola ari gara denbora? HIZLARIA 1: 10 minutu. HUGH Zabriskie: 10 minutu? Great! Awesome. Beraz lehenengoa noa ez, nik nire gogokoenak Song deitzen. Beraz, ez da gutxi HTML Javascript. Bi botoiak goaz orrialdean nire abesti gogokoena erreproduzitu eta gelditu nire abesti gogokoena. Aldatu dut hau. Ikusleak: Estali mikrofonoa. HUGH Zabriskie: Bai. Eta hemen ere ez dut kargaturik funtsean hori gidoi bat eta hau erabilgarria MP3 bat kargatzeko beraz, hau bakarrik egiten MP3s bide azkarrago kargatzen. Funtsean da wrapper bat besterik ez. Besterik prozesua Egiten MP3s askoz azkarrago kargatzen, Besterik HTTP eskaera erabiltzen ari zarela, motatako zer egiten genuen bezala Zerbitzariarekin ezarri uneko pieza on. Benetan itsusia, zuk ez nahi da egin behar. Beraz, tipo hau, Boris Smus, idatzi zuen benetan bat BufferLoader izeneko tresna erabilgarria gutxi. Egiten den guztia igaro besterik egiten du testuingurua, hura list-- bat pasatzen duzu edo, bai, ez da Javascript-a zerrendan egiteko? SAM GREEN: Array bat. HUGH Zabriskie: Oh, it da sorta bat, hori da. Bideak array bat da fitxategiak ezberdinetara. Eta, ondoren, funtzio bat pasatzen duzu. Hau atzeradei hitz egin genuen dago loading asynchronous buruz. Hori deitu egingo kargatutako fitxategiak behin. Eta funtzio hori deitzen duzunean du fitxategia kargatu perimetro bat bezala hartzen du kargatutako bufferrak array bat. Beraz, hori gertatzen da hemen. Funtsean, BufferList da balioa bat izango da edo nik array bat izango da luzera bata, bertan ditu indizea kargatutako MP3 fitxategi osoa zero. Beraz, zer egin dut amaitzeko da kargatzeko, besterik ez dut buffer iturri bat sortzea, eta horrek audio buffer source nodo bat da. Hurrengo pausoa da kargatu dut batean source.buffer kargatutako buffer osoa bezala BufferList-- batetik buffers-- asko da eta, ondoren, audio konektatu duzu Helmugara buffer. Beraz, zer da egin egingo besterik ez da, besterik gabe, jarri MP3 du zuzen irteera bidez, eta hasi da berehala dei hau lortzeko gainean. Cool, beraz, ikus dezagun hau gerta ekintzan. My [INAUDIBLE] hemen, ikus dezagun. Beraz, ez dut besterik joan Oinarrizko zerbitzari bat hasteko. Hori da, zerbait Oraindik baduzu, egin behar duzun fitxategiak kargatzeko eskaerak egiteko. Oinarrizko zerbitzari bat hasteko noa. Hau da, funtsean, zure osoa Pset oraintxe lerro bat, baina besterik hasita 80/80 atakan zerbitzari bat. Beraz errepasatuko ditugu hemen, dugun 80/80 kargatu joan, My Favorite Song joan goaz. Beraz, I hit bada "Play my abesti gogokoena "oraintxe, nik kargatu joan nire gogoko abestia eta play it [MUSIKA - Eagles, "LIFE azkar IN  LANE "] --which gertatzen "Life izateko Fast Lane "Eagles arabera. Orain, hit izan dut "Gelditu nire abesti gogokoena "eta errepikatzea da. [MUSIKA - Eagles, "LIFE azkar IN  LANE "] Eta gehiago joan nintzen, zeren kontsolara bada Aldagai global bat erabili hemen baino gehiago I Pista benetan mantentzeko balio du hori, hura egingo kontsola izango orain aitortzen. Beraz, niretzat auto-sortzen. Beraz, zer oraintxe jolasten, eta besterik ez dut deitu ahal source.stop () horretan. Beno, zer ezagutzen duzu? Just beraz, you guys entzun dute hau song-- abesti hau ezagutzen duzu agian. [MUSIKA - Rick Astley, "Inoiz ez asmorik GIVE  YOU arriba "] [MUSIKA - Eagles, "LIFE azkar IN  LANE "] Nik jada Rickrolled Denok. Ados, handia, mugitzea. Cool. Beraz, hau da, funtsean, adibide bat besterik nola MP3 bat kargatu ahal duzu fitxategi [MUSIKA - Eagles, "LIFE azkar IN  LANE "] --and jokatuko da, eta gelditzeko eta hasi da. Dut asko egin izan gehiago [INAUDIBLE] Bat egin dut azken da, Erakutsi dut bat [INAUDIBLE]. [Musika jotzen] Da bezala, ogg.wave.mp3. , Uste dut ondo gogoratzen dut, Gai batzuk sartu dut exekutatu .m4a batera, baina ez nago ziur. Uste dut mp3.wave-- [MUSIKA - Rick Astley, "Inoiz ez asmorik GIVE  YOU arriba "] Ados, handia. Ez nian esan duenez. Dena den, kaixo. Beraz open hau dugu. Beraz, orain ez dut da, sortu funtsean I musika sortzeko oinarrizko sintaxia. Beraz, zerbait egin nuen bezala bada, gehitu G4 1 2an, zer esan nahi duen, gehitu piano ohar, G4, den laugarren G da behetik pianoan eman. Beraz, hau MIDI mota da hitz egin, beraz direnek musika oinarri, hau besterik MIDI notak da. Ikusleak: Hori da, G Erdi C, ezta? HUGH Zabriskie: Hau da G Erdi C gainetik, hori da. Ikusleak: Above Erdi C. HUGH Zabriskie: Bai. Bai, egia esan. Nik uste dut benetan egin nuen bat [INAUDIBLE] da, beraz, hori gainetik zortzidun bat izan liteke. Beraz, ikus dezagun. Play-- hit I bada [Errepikakorra PIANO OHARRA] --we're hori entzungo. Ideia da funtzionatzen duten besterik komando-lerro bat litzateke, beraz, gora eta behera joaten naizen nire teklatuan, zuk itzuli ahal izateko aurreko komandoak, hau da, nahiko erabilgarria. Eta beherago nire ibilbideak zerrenda da, diren guztiak begizta exekutatzen. Ikusleak: suposatuz zinen du 88-giltza teklatua horretan, ezta? HUGH Zabriskie: Galdera izan zen, Nago 88-tekla bat suposatuz, eta bai, ni naiz. Zer egin nuen da I funtsean hartu zuten 88 laginak pianoa, ohar bakoitzeko bana. Eta beraz, aldi bakoitzean hemendik aurrera ohar bat entzuteko, Hori da benetan itxura begizta batean antzekoak hau ohitu da begizta batean jokatzen da, beraz Ohar bakoitzean, martxan da hau. Zer gertatzen da, I buffer bat sortuko da berriro, Gain nodo baten bolumena ezartzeko sortu dut. Benetan hau besterik ez da I esateko modu korapilatsu source.buffer batean buffer gordetzeko. Irabazia ematen dut, nik konektatu irabazia den, irabazia da konektatutako irteera, eta gero jolastu dut. Beraz, hori prozesua antzeko zerbait da buffer iturri bat ere hartzeko. Publikoa: Ezin duzu benetan hartu duten soinu lehor eta gustora hezea [INAUDIBLE]? HUGH Zabriskie: You can, bai. Ez da, ber-aditza, ez da atzerapena, distortsio. Funtsean, jarri ahal izango duzu ezer ere ogitarteko horretan of-- ondo artean, gasbide metafora bat hobea da, baina hori ere ezer gehitu ditzakezu. Cool. Beraz demo amaitu dut Hemen duzu zentzu bat emateko ren besterik sheer zenbat aldiz dituzu Funtzio hori guztia aldi berean exekutatu daiteke. Beraz, ez dut hori kendu egingo da. Sorgailu bat sortzeko noa -bere funtsean, zer honek hau benetan sintaxia korapilatsu baten antzeko zerbait baina da unean ohar sortzen joan, eta bakarrik hasi jolasten haiek ebaluatzen da. [INTERPOSING PIANO] Beraz, ezin dugu egin musika apur bat hemen. [INTERPOSING PIANO] Beraz, zer komando hau du, adibidez, ez da hiru ohar horiek hartzen du piano eta gero jartzen B3 gunean. Sintaxia hau egin liteke a little more zentzu dutenek bati musika hondo hemen. Falta danbor bat gehitu ahal izango dut. I can-- [INTERPOSING INSTRUMENTUAK] --just play inguruan horrekin. Beraz make-- ditzakezu [INTERPOSING INSTRUMENTUAK] Bat hori da apur bat gehiago gogaikarriak. [INTERPOSING INSTRUMENTUAK] Beraz, hori ausaz cymbal lehor bat gehitzen 16an ohar guztietan,% 16 batekin [INAUDIBLE]. [INTERPOSING INSTRUMENTUAK] Bai, beraz, modu honetan works-- da beti 4: 4. [INTERPOSING INSTRUMENTUAK] Bai, beraz, lau hiruhilekoetan, eta 16/8. [INTERPOSING INSTRUMENTUAK] Beraz, batez beste,% 60 lortuko duzu ren 16an ohar hits. Anyways, hau besterik ez zen motatako off erakusteko gauzak Could batzuk the Web Audio API batera eraikitzeko. Benetan indartsua da, benetan azkarra da, eta cool gauza asko egin dezakezu berarekin. Beraz, berriro ere, edozein galdera, email myself-- Hugh-- edo Sam, eta zintzotasunez, Google ditu baliabide ona tona bat. Edozein azken galdera? Bai. IKUSLEEN: dezakezu sarbidea du mikrofonoa. Zer nahi izanez gero erabili mikrofono hobea? HUGH Zabriskie: nahi baduzu Mikrofono hobeto erabili ahal izateko? Beraz, berriro ere, hau parte da Chrome arteko abstrakzioa eta zure ordenagailuaren gainerako. Bitartez eskuragarri ezean API bat, Web MIDI API bezala, Ziurrenik ezin duzu hack batzuk aurkitu, baina, oro har, ez baita bideragarria. SAM GREEN: also-- dezakezu Chrome daki guztiak zer da zure mikrofonoa lehenetsia da, eta sartzen da. Beraz, mikrofono bat izan baduzu, ezin duzu ordenagailuaren lehenetsia mikrofono gisa ezartzeko, Bera eskuratzeko ezin duzu horrela pentsatzen eta ziurrenik lan litzateke. HUGH Zabriskie: That puntu ona da. Ez naiz inoiz saiatu dela, baina nolako gauza egin ditzakezu of-- sarrerako hiztunaren redirect baduzu, hori egin ahal izatea, bai. Edozein azken galdera? Cool. Beno, eskerrik asko guys beraz, behaketa askoz. Hugh naiz. SAM GREEN: naiz Sam. HUGH Zabriskie: Eta hau CS50 da.