1 00:00:00,000 --> 00:00:05,900 2 00:00:05,900 --> 00:00:07,170 >> SAM GREEN: Sveiki, visiem. 3 00:00:07,170 --> 00:00:08,640 Laipni lūgti mūsu seminārā. 4 00:00:08,640 --> 00:00:10,009 Mans vārds ir Sam. 5 00:00:10,009 --> 00:00:11,050 Hugh Zabriskie: es esmu Hugh. 6 00:00:11,050 --> 00:00:17,420 SAM GREEN: Un mēs runāsim šodien par JavaScript un Web audio API. 7 00:00:17,420 --> 00:00:21,180 Tikai, lai sāktu ārā, tas ir kontūra Mūsu darba kārtībā seminārā. 8 00:00:21,180 --> 00:00:25,350 Mēs ejam, lai sāktu, runājot par kāpēc jums vajadzētu būt interesē Web 9 00:00:25,350 --> 00:00:30,130 Audio API, kāpēc ir JavaScript valoda, jums ir nepieciešams par to, 10 00:00:30,130 --> 00:00:32,619 un tad runāt par JavaScript essentials-- tik līdzīgi, 11 00:00:32,619 --> 00:00:34,800 staigāt jums caur kādu pamati valodas, 12 00:00:34,800 --> 00:00:37,290 un tad runāt par audio API augstā līmenī. 13 00:00:37,290 --> 00:00:41,140 Tad, Hugh stāstīs par kādu no posmiem audio ražošanu 14 00:00:41,140 --> 00:00:45,509 un tad demo šo awesome sequencer Projekts viņš uzcēla un parādīs kodu. 15 00:00:45,509 --> 00:00:48,050 Un tad, mums būs laiks Jautājumi beigās cilvēkiem 16 00:00:48,050 --> 00:00:49,593 kuri šeit dzīvo. 17 00:00:49,593 --> 00:00:50,540 >> Hugh Zabriskie: Cool. 18 00:00:50,540 --> 00:00:50,990 >> SAM GREEN: Cool. 19 00:00:50,990 --> 00:00:51,383 >> Hugh Zabriskie: Cool. 20 00:00:51,383 --> 00:00:52,170 Es atpakaļ uz augšu. 21 00:00:52,170 --> 00:00:54,960 >> SAM GREEN: Tātad, pirmās lietas vispirms. 22 00:00:54,960 --> 00:00:57,840 Tātad viens no lielas lietas par Web Audio API 23 00:00:57,840 --> 00:01:00,480 ir tā, ka tur nav noteikts up nepieciešams. 24 00:01:00,480 --> 00:01:04,230 Tas nāk iebūvēts līdz Lielākā daļa mūsdienu pārlūkprogrammām, 25 00:01:04,230 --> 00:01:08,630 tostarp Chrome, EDGE, kopumā ķekars others-- visiem tiem 26 00:01:08,630 --> 00:01:12,650 ka lielas porcijas cilvēki izmanto šodien. 27 00:01:12,650 --> 00:01:14,807 Tāpēc nav izveidota, malā no vienkārši kļūst 28 00:01:14,807 --> 00:01:16,890 web serveri iet, lai jums, lai sāktu strādāt 29 00:01:16,890 --> 00:01:18,420 par savu projektu, kas ir lieliski. 30 00:01:18,420 --> 00:01:21,500 31 00:01:21,500 --> 00:01:24,190 >> Mēs iesakām diezgan stipri, ka jūs uzskatāt 32 00:01:24,190 --> 00:01:26,530 izmantojot Chrome JavaScript web izstrāde, 33 00:01:26,530 --> 00:01:30,260 tikai tāpēc, ka tā izstrādātājs instrumenti ir ļoti spēcīga. 34 00:01:30,260 --> 00:01:33,220 Kā piemēru tikai to, ko mēs domājam sakot atvērt savu JavaScript 35 00:01:33,220 --> 00:01:38,600 console-- ja jūs iedziļināties Chrome un paskatās jebkurā tīmekļa lapā, 36 00:01:38,600 --> 00:01:43,897 un jūs pa kreisi klikšķi Pārbaudiet Element, un pēc tam 37 00:01:43,897 --> 00:01:46,730 doties uz šo maz nolaižamā tieši šeit un jūs noklikšķiniet uz konsoli, 38 00:01:46,730 --> 00:01:50,660 jūs redzēsiet, ko paver izskatās kā komandrindas daudz kas jums 39 00:01:50,660 --> 00:01:53,720 var redzēt uz jūsu Mac, vai uz ID. 40 00:01:53,720 --> 00:01:59,260 Un tieši tāpat, ka mēs varam tipa komandas šeit, piemēram, Clear, 41 00:01:59,260 --> 00:02:01,350 un citas komandas, piemēram, ka. 42 00:02:01,350 --> 00:02:04,267 Mēs varam radīt mainīgos, kā mēs redzēsim vēlāk JavaScript. 43 00:02:04,267 --> 00:02:07,100 Un tā kaut ko mēs varam darīt JavaScript, mēs varam darīt ar konsoli, 44 00:02:07,100 --> 00:02:11,430 un tas ir super ērts veids, kā sākt spēlēt aptuveni ar API 45 00:02:11,430 --> 00:02:15,760 un kļūst apmierināti ar JavaScript tiesības pie nūja. 46 00:02:15,760 --> 00:02:18,290 Nav nepieciešama set up, kas ir patiešām jauki. 47 00:02:18,290 --> 00:02:18,790 Cool. 48 00:02:18,790 --> 00:02:22,064 49 00:02:22,064 --> 00:02:22,880 Awesome. 50 00:02:22,880 --> 00:02:24,780 >> Tik vienkārši vēl viena lieta, lai pievienotu. 51 00:02:24,780 --> 00:02:27,780 Ja jums ir kāds questions-- ir daudzi no jums, kas nav šeit dzīvot, 52 00:02:27,780 --> 00:02:31,232 justies brīvi uz e-pastu us-- šos ir mūsu e-pasta adreses. 53 00:02:31,232 --> 00:02:33,190 Ja jums ir jautājumi Jūs nevēlaties, lai jautāt mums, 54 00:02:33,190 --> 00:02:36,160 piemēram, ak man ir kļūda manā kodu, vai kaut kas 55 00:02:36,160 --> 00:02:39,270 tas ir mazliet vairāk īpašs, varbūt Google to vispirms. 56 00:02:39,270 --> 00:02:42,340 Ir daudz lielu resursu par tīmekļa audio API, kas tur. 57 00:02:42,340 --> 00:02:44,089 Tas ir tiešām labi dokumentē un tas tiek 58 00:02:44,089 --> 00:02:47,194 ar ton cilvēku lieto nozares, un cilvēki, kuri ir tikko 59 00:02:47,194 --> 00:02:48,610 ēku fun stuff par sevi. 60 00:02:48,610 --> 00:02:51,306 Tātad ir jābūt daudz resursu, kas tur. 61 00:02:51,306 --> 00:02:53,040 Awesome. 62 00:02:53,040 --> 00:02:56,100 >> Atdzesē, tad kāpēc Web Audio API? 63 00:02:56,100 --> 00:02:59,840 Šī diagramma ir mazliet no evolūcijas ceļā 64 00:02:59,840 --> 00:03:04,100 skaņas tīmeklī ir pieaudzis laikā. 65 00:03:04,100 --> 00:03:13,080 Bgsound bija kā oriģinālā HTML tagu ka Internet Explorer izmanto, lai atbalstītu. 66 00:03:13,080 --> 00:03:16,790 Tas tikai ļāva diezgan pamata skaņām, funkcionalitāte nebija ļoti spēcīgs, 67 00:03:16,790 --> 00:03:19,380 un jūs nevar darīt sarežģīta sekvences, 68 00:03:19,380 --> 00:03:21,890 vai kontrolēt, kad skaņa sākās un apstājās ļoti stabili. 69 00:03:21,890 --> 00:03:23,930 Tātad, tas nebija īpaši labi attīstīta. 70 00:03:23,930 --> 00:03:27,470 Tad pēc tam, Flash nāca along-- kas, 71 00:03:27,470 --> 00:03:31,712 Es esmu pārliecināts, ka jūs puiši visi esam iepazinušies ar Flash-- varbūt nav, kā tā darbojas, 72 00:03:31,712 --> 00:03:32,920 bet jūs esat noteikti redzējuši. 73 00:03:32,920 --> 00:03:35,586 Jūs esat ieguvuši, lai atjauninātu savu Flash Plug-in, visu šāda veida stuff, 74 00:03:35,586 --> 00:03:40,110 un tas noteikti pagarināts diapazonu funkcionalitāti, kas bija pieejama. 75 00:03:40,110 --> 00:03:45,370 Bet padarot lietotājam instalēt plug-in ir noteikti 76 00:03:45,370 --> 00:03:48,480 atmaksas to skaitā Flash jūsu pieteikumu, vai ne? 77 00:03:48,480 --> 00:03:52,410 Jo tad tu esi atkarīgs no lietotājs iet un atrast šo plug-in, 78 00:03:52,410 --> 00:03:54,660 un, iespējams, tiek ieslēgts off šis papildu solis 79 00:03:54,660 --> 00:03:56,640 viņiem ir nepieciešams, lai izmantotu jūsu app. 80 00:03:56,640 --> 00:04:01,270 Un tad tur varētu būt atjaunota kas būs pauze jūsu visu pieteikumu, 81 00:04:01,270 --> 00:04:03,880 un tas beidzas ar to, murgs attīstītājs, too. 82 00:04:03,880 --> 00:04:06,230 Tā, ka bija barikādes. 83 00:04:06,230 --> 00:04:10,480 >> Un tad pēc tam nāca kopā, HTML audio tag, kas 84 00:04:10,480 --> 00:04:16,579 ir iezīme modernāka HTML-- kas protams ļāva daudz vairāk sīkumi, 85 00:04:16,579 --> 00:04:20,050 bet pat lietas, jūs varētu darīt tur bija nedaudz ierobežota tikai 86 00:04:20,050 --> 00:04:22,730 kā rezultātā lietām ka HTML varēja. 87 00:04:22,730 --> 00:04:26,060 Tātad, ja JavaScript API, Web Audio API, 88 00:04:26,060 --> 00:04:29,290 kļuva par standarta praktizēt pāri pārlūkprogrammās, 89 00:04:29,290 --> 00:04:32,490 kas patiešām paplašināja komplektu iespēju izstrādātājiem 90 00:04:32,490 --> 00:04:36,590 patiešām nokļūt ēkā cool stuff tīmeklī. 91 00:04:36,590 --> 00:04:39,220 Ilgu laiku tur bija ir patiešām spēcīgi instrumenti 92 00:04:39,220 --> 00:04:44,360 native audio programmas, like-- visi zina GarageBand, 93 00:04:44,360 --> 00:04:48,360 un tad, protams, ir vairāk profesionālās audio sajaukšana pieteikumi, 94 00:04:48,360 --> 00:04:49,640 un šāda veida sīkumi. 95 00:04:49,640 --> 00:04:52,690 Bet tur nebija tiešām labs Cloud-- nav 96 00:04:52,690 --> 00:04:55,811 Cloud, jā, es domāju, Cloud-- tīmekļa platforma 97 00:04:55,811 --> 00:04:58,310 kas ļauj izstrādātājiem veidot lietojumprogrammas cilvēkiem 98 00:04:58,310 --> 00:05:00,570 darīt audio sajaukšanos. 99 00:05:00,570 --> 00:05:03,960 Un kā viņš jums parādīs vēlāk, Web Audio API 100 00:05:03,960 --> 00:05:07,470 ļauj patiešām jaudīga sīkumi notikt patiešām vienkārši, 101 00:05:07,470 --> 00:05:09,597 kas ir diezgan foršs. 102 00:05:09,597 --> 00:05:12,680 Tātad tas ir norādījums, kāpēc jūs vajadzētu skatīties pārējo seminārā, 103 00:05:12,680 --> 00:05:14,350 būtībā. 104 00:05:14,350 --> 00:05:17,880 >> Un tagad, es esmu gatavojas runāt par daži JavaScript-- tikai pamatelementi 105 00:05:17,880 --> 00:05:20,240 valodas, lai mēs var būt tajā pašā lapā 106 00:05:20,240 --> 00:05:22,470 kad mēs runājam par API mazliet vēlāk. 107 00:05:22,470 --> 00:05:23,260 Cool. 108 00:05:23,260 --> 00:05:26,192 >> Tātad, tas ir kopsavilkums. 109 00:05:26,192 --> 00:05:27,150 Es aizmirsu tas bija šeit. 110 00:05:27,150 --> 00:05:27,510 Jā. 111 00:05:27,510 --> 00:05:27,870 >> Hugh Zabriskie: Ir divi slaidi šeit. 112 00:05:27,870 --> 00:05:30,245 >> SAM GREEN: Šis ir kopsavilkums daži no ierobežojumiem 113 00:05:30,245 --> 00:05:35,220 no citiem saistošiem, vecās metodes. 114 00:05:35,220 --> 00:05:37,828 Un tad tagad, mums ir šīs lietas. 115 00:05:37,828 --> 00:05:40,011 Cool. 116 00:05:40,011 --> 00:05:40,510 Awesome. 117 00:05:40,510 --> 00:05:43,200 >> Tātad, JavaScript essentials. 118 00:05:43,200 --> 00:05:47,230 Pirmās lietas, pirmkārt, tur ir diezgan būtiska atšķirība 119 00:05:47,230 --> 00:05:49,940 JavaScript pret in valodas, piemēram, C, tādā veidā 120 00:05:49,940 --> 00:05:52,050 ka mainīgie ir izveidots. 121 00:05:52,050 --> 00:05:55,634 Tātad C, mēs esam pieraduši rakstīt mūsu mainīgos, vai ne? 122 00:05:55,634 --> 00:05:57,800 Un es nedomāju veidu, piemēram, ierakstiet tos, es domāju tipa 123 00:05:57,800 --> 00:06:01,900 piemēram, noteiktu tiem type-- nozīmi piemēram, int, pludiņš, char. 124 00:06:01,900 --> 00:06:05,210 In C, mēs patiešām izmanto, lai kam, lai izveidotu mainīgo 125 00:06:05,210 --> 00:06:09,690 un tad brauciet uz šāda veida, lai visu laiku, ka mēs izmantojam šo mainīgo. 126 00:06:09,690 --> 00:06:13,990 Un tas ne vienmēr ir sliktāks, bet tas ir iespējams, grūtāk. 127 00:06:13,990 --> 00:06:16,190 Viens no atdzist iezīmes JavaScript ir 128 00:06:16,190 --> 00:06:19,740 ka mainīgie ir tas, ko sauc "dinamiski drukāti", kas 129 00:06:19,740 --> 00:06:22,500 nozīmē, ka es varu izveidot mainīgs ar šo sintaksi, 130 00:06:22,500 --> 00:06:25,800 varX ir vienāds ar 5, piemēram. 131 00:06:25,800 --> 00:06:27,790 Kas sākotnēji rada vesels skaitlis variable-- 132 00:06:27,790 --> 00:06:29,870 tieši zem kapuce somewhere-- bet es 133 00:06:29,870 --> 00:06:33,040 var mainīt šo mainīgo atsaukties uz virkni 134 00:06:33,040 --> 00:06:35,820 bez darīt kaut ko, piemēram, radot jaunu mainīgo. 135 00:06:35,820 --> 00:06:37,880 Man nav jāuztraucas par tipa maiņu. 136 00:06:37,880 --> 00:06:45,440 JavaScript zina, ka tips ir mainījies, un tas notiek dinamiski. 137 00:06:45,440 --> 00:06:48,510 >> Tātad, ir priekšrocības un trūkumi, kas, 138 00:06:48,510 --> 00:06:51,250 jo ikviens, kurš strādāja JavaScript uz brīdi varētu zināt. 139 00:06:51,250 --> 00:06:53,600 Ir reizes, kad jūs varētu nejauši 140 00:06:53,600 --> 00:06:57,720 mainīt mainīgo tipu un nav rīkoties, ka veida izmaiņas, 141 00:06:57,720 --> 00:07:01,120 un tad JavaScript var crash-- vai izņēmums 142 00:07:01,120 --> 00:07:06,070 izmesti, jo jums ir nepareizs veids, kad jūs sagaida viena veida. 143 00:07:06,070 --> 00:07:07,040 Cool. 144 00:07:07,040 --> 00:07:11,470 >> Tātad, scoping-- kas ir kā, ja mēs atcerēties agri nedēļas gaitā, 145 00:07:11,470 --> 00:07:15,420 attiecas uz to, kā redzamā mainīgo ir un kādā jomā kodu. 146 00:07:15,420 --> 00:07:18,400 Visi, kas izskatās ļoti līdzīgi uz to, kā tas izskatās C. 147 00:07:18,400 --> 00:07:24,755 Tātad mainīgie ir scoped parasti ietvaros cirtaini bikšturi ietvaros funkciju, 148 00:07:24,755 --> 00:07:27,005 un tad tur ir arī globāli scoped mainīgie, kas 149 00:07:27,005 --> 00:07:29,171 are-- ja jūs rakstīt mainīgais ārpus no funkciju, 150 00:07:29,171 --> 00:07:31,790 tas būs redzams visā tekstā. 151 00:07:31,790 --> 00:07:35,840 >> Viena atšķirība starp JavaScript un C, jo īpaši, 152 00:07:35,840 --> 00:07:40,280 ir tas, ka, ja jūs atzīt globāls mainīgs jebkur teksta failu 153 00:07:40,280 --> 00:07:43,324 tas ir redzams katrā funkciju šajā teksta failu. 154 00:07:43,324 --> 00:07:44,240 Tas ir pareizi, vai ne? 155 00:07:44,240 --> 00:07:46,330 >> Hugh Zabriskie: Yep. 156 00:07:46,330 --> 00:07:49,120 >> SAM GREEN: Tātad tas ir arī nedaudz bitu bailīgs, salīdzinot ar C, 157 00:07:49,120 --> 00:07:52,660 kur mēs vienmēr bija jābūt mūsu mainīgo definīcijas virs vietām 158 00:07:52,660 --> 00:07:53,770 tie tika izmantoti. 159 00:07:53,770 --> 00:07:57,957 Tas nav noteikums, ka ir izpildīts vairs, tāpēc, mazliet atšķirīgs. 160 00:07:57,957 --> 00:08:00,540 Un atkal tikai, lai no jauna uzsvērs, globāla pret vietējo variables-- 161 00:08:00,540 --> 00:08:03,457 ļoti līdzīga C. Jūs varētu būt divi mainīgie ar tādu pašu nosaukumu, 162 00:08:03,457 --> 00:08:06,540 un ir viens no viņu vārdi tiktu aizēnojusi ar vietējās mainīgo, ja viens no tiem 163 00:08:06,540 --> 00:08:07,546 bija globāla. 164 00:08:07,546 --> 00:08:09,420 Tātad, līdzīgi veida problēmas, ka daži no jums 165 00:08:09,420 --> 00:08:11,920 var būt uzskriet dažās Jūsu problēma noteikti līdz šim. 166 00:08:11,920 --> 00:08:14,450 Cool, tā ka ir mainīgos. 167 00:08:14,450 --> 00:08:20,310 >> Control plūsma, kas nozīmē, piemēram, ja-else-- loģisks stuff-- un cilpas. 168 00:08:20,310 --> 00:08:24,510 Tātad, lai sāktu ar, tas ir tas, ja-cits paziņojumi izskatās JavaScript. 169 00:08:24,510 --> 00:08:29,750 No dažādām lietām izvietošana uz līnijām, nav svarīgi. 170 00:08:29,750 --> 00:08:34,409 Šis ir tikai viens no konvencijām par to, kā mēs struktūru kodu. 171 00:08:34,409 --> 00:08:38,634 Tāpat kā C, mums ir "ja", iekavās paziņojumu. 172 00:08:38,634 --> 00:08:40,840 173 00:08:40,840 --> 00:08:42,090 Tas nav tas, ko es gribēju darīt. 174 00:08:42,090 --> 00:08:44,860 175 00:08:44,860 --> 00:08:45,550 Es darīju to vēlreiz. 176 00:08:45,550 --> 00:08:46,841 >> Hugh Zabriskie: Mēģina iziet? 177 00:08:46,841 --> 00:08:49,770 SAM GREEN: Nē, es esmu tikai mēģina, lai tuvinātu. 178 00:08:49,770 --> 00:08:50,660 Tas nav svarīgi. 179 00:08:50,660 --> 00:08:54,730 180 00:08:54,730 --> 00:08:59,370 >> Tātad, mums ir ", ja" paziņojumu un mums ir stāvoklis, iekšpusē no tā 181 00:08:59,370 --> 00:09:03,130 kas novērtē to patiess vai nepatiess, un kas nosaka, vai 182 00:09:03,130 --> 00:09:04,510 mēs ieejam, ka bloku kodu. 183 00:09:04,510 --> 00:09:09,860 Un tāpat, mums ir cits-ja, un cits, tāpat kā mēs esam pieraduši C 184 00:09:09,860 --> 00:09:14,010 >> Jums arī vajadzētu būt diezgan ērti tiesības pie nūja ar cilpām, 185 00:09:14,010 --> 00:09:16,440 jo tie arī izskatās daudz, piemēram, C izskatās. 186 00:09:16,440 --> 00:09:19,600 Bet jūs pamanīsiet, atkal, ka mēs ir, nevis int initializations, 187 00:09:19,600 --> 00:09:22,570 mums ir VAR initializations. 188 00:09:22,570 --> 00:09:24,650 Un es domāju, jums ir jābūt uzmanīgiem, lai padarītu 189 00:09:24,650 --> 00:09:28,460 pārliecināts, ka jums nav mainīt vērtību I no int uz virkni, 190 00:09:28,460 --> 00:09:31,780 jo, piemēram, kas notiek, lai radīt dīvainu uzvedību jūs nevarēsiet 191 00:09:31,780 --> 00:09:32,280 sagaida. 192 00:09:32,280 --> 00:09:35,750 Bet tas būtu jāizskatās diezgan pazīstams, kā arī. 193 00:09:35,750 --> 00:09:39,460 >> Tātad, tas ir, ja lietas sāk iegūt mazliet traks JavaScript 194 00:09:39,460 --> 00:09:44,920 kāds, kurš iet no fons C. Ir funkcijas 195 00:09:44,920 --> 00:09:48,070 JavaScript, un tur ir viens veids atzīt funkciju, kas izskatās 196 00:09:48,070 --> 00:09:50,361 veida līdzīga C, un tad tur ir vēl viens, kas 197 00:09:50,361 --> 00:09:52,450 izskatās veida atšķirīgs. 198 00:09:52,450 --> 00:09:54,930 >> Pirmā versija, ko mēs varam redzēt šeit, 199 00:09:54,930 --> 00:09:59,260 ir veida C-, piemēram, kur mēs sakām, tas ir funkcija, 200 00:09:59,260 --> 00:10:01,490 arī tā nosaukumu, dot Par argumentu skaits, 201 00:10:01,490 --> 00:10:05,150 un pēc tam saturs funkcijas iet iekšā šiem cirtaini lencēm. 202 00:10:05,150 --> 00:10:08,850 Redzēsim piemēru argumentiem tikai sekundi. 203 00:10:08,850 --> 00:10:13,420 >> Tā kā uz nākamo rindiņu, mēs redzam, ak, šeit ir mainīgais sauc par "myFunction," 204 00:10:13,420 --> 00:10:17,546 un mēs vienāds to šis generic thing-- function-- ka 205 00:10:17,546 --> 00:10:19,170 nešķiet kaut notiek. 206 00:10:19,170 --> 00:10:22,780 207 00:10:22,780 --> 00:10:26,080 Iemesls tas ir atšķirīgs nekā C ir tas, ka JavaScript 208 00:10:26,080 --> 00:10:30,040 ir tas, ko sauc par funkcionālu valoda, vai ir funkcionālie elementi, kas nozīmē, 209 00:10:30,040 --> 00:10:33,510 ka funkcijas ir faktiski vērtības. 210 00:10:33,510 --> 00:10:39,520 Un tas nozīmē, ka mēs varam noteikt mainīgais uz vienlīdzīgu funkciju 211 00:10:39,520 --> 00:10:43,210 un pēc tam pārvietot šo funkciju apkārt, nodot to kā argumentu, 212 00:10:43,210 --> 00:10:46,550 darīt visu sīkumi veidu piemēram, ka ar funkcijām. 213 00:10:46,550 --> 00:10:49,682 >> Viena cita lieta note-- funkcijas ir rakstīts 214 00:10:49,682 --> 00:10:51,140 ar noteiktu skaitu argumentiem. 215 00:10:51,140 --> 00:10:54,056 Redzēsim piemēru funkcija ar argumentu par nākamo slaidu. 216 00:10:54,056 --> 00:10:56,720 Bet JavaScript nebūs bļaut pie jums, ja jūs mēģināt 217 00:10:56,720 --> 00:10:59,330 izmantot funkciju ar nepareizs argumentu skaits. 218 00:10:59,330 --> 00:11:05,310 Tas būs tikai darīt visu iespējamo, lai padarītu darīt, kas nozīmē, ka, ja jūs iet, 219 00:11:05,310 --> 00:11:09,410 jūs zvanu funkciju, kas sagaida arguments bez arguments, ka visiem 220 00:11:09,410 --> 00:11:13,990 notiks tas darīšu visu iespējamo lai mēģinātu izpildīt šo kodu, 221 00:11:13,990 --> 00:11:16,541 un, ja tas iespējams, darbojas uz izņēmums vai kļūda, 222 00:11:16,541 --> 00:11:19,790 tas būs mest šo izņēmumu un tikai glabāt going-- kas ir tikai viens no veidiem, 223 00:11:19,790 --> 00:11:21,070 ka JavaScript darbojas. 224 00:11:21,070 --> 00:11:21,781 Jā. 225 00:11:21,781 --> 00:11:24,207 >> Mērķauditorija: Kas notiek, ja tur ir pārāk daudz argumentu? 226 00:11:24,207 --> 00:11:26,040 SAM GREEN: Tātad Jautājums bija, kas notiek 227 00:11:26,040 --> 00:11:27,380 ja ir pārāk daudz argumentu? 228 00:11:27,380 --> 00:11:29,171 Un atbilde ir, ka JavaScript būs tikai 229 00:11:29,171 --> 00:11:32,120 ignorēt tos, kas ir pēc tiem tā sagaida. 230 00:11:32,120 --> 00:11:36,420 Tas būs mēģināt izpildīt funkciju zvanu it kā tas bija tikai pirmās divas. 231 00:11:36,420 --> 00:11:37,075 Tiesības? 232 00:11:37,075 --> 00:11:37,700 >> Hugh Zabriskie: Tas ir labi, jā. 233 00:11:37,700 --> 00:11:39,449 Tāpat, ja tur ir pārāk maz argumentu, 234 00:11:39,449 --> 00:11:42,640 tas tikai veida dod spēku, lai visu argumenti tam nav nekādas vērtības 235 00:11:42,640 --> 00:11:43,660 par. 236 00:11:43,660 --> 00:11:45,810 >> SAM GREEN: ko var faktiski būt ērts, ja jums 237 00:11:45,810 --> 00:11:49,060 gribu uzrakstīt funkciju, kas ņem mainīgu skaitu argumentus. 238 00:11:49,060 --> 00:11:55,830 Jūs varat iestatīt noklusējuma vērtības definīcija funkciju, 239 00:11:55,830 --> 00:11:59,060 un tā var ignorēt faktu ka ieejas nav tur. 240 00:11:59,060 --> 00:12:01,584 241 00:12:01,584 --> 00:12:04,000 Tāpēc es gribu runāt mazliet vairāk par šo pēdējo lodi 242 00:12:04,000 --> 00:12:05,541 punkts, kas ir funkcijas ir vērtības. 243 00:12:05,541 --> 00:12:07,930 244 00:12:07,930 --> 00:12:11,010 Tas ir piemērs, kas ir mazliet prātā-putu 245 00:12:11,010 --> 00:12:14,880 ja jūs vienkārši izlasīt, un nedomāju, ka par to, kas notiek uz otru. 246 00:12:14,880 --> 00:12:17,910 Tātad, aplūkosim tikai pie pirmajā rindā šeit. 247 00:12:17,910 --> 00:12:24,360 Mums ir šī mainīgs, F1, ka mēs sakām ir funkcija, kas dara šo lietu. 248 00:12:24,360 --> 00:12:28,535 Un saturs funkcijas tiek console.log ("sveiki"). 249 00:12:28,535 --> 00:12:32,220 Jūs varat domāt par console.log, kam pakļauta JavaScript ekvivalents printf. 250 00:12:32,220 --> 00:12:35,510 Tātad, kas notiks, ir, ja mēs palaist šo kodu mūsu pārlūku, 251 00:12:35,510 --> 00:12:37,530 tas būs izdrukāt virkni. 252 00:12:37,530 --> 00:12:39,342 Es varu pierādīt, ka. 253 00:12:39,342 --> 00:12:42,300 Mērķauditorija: Ar žurnāla, lai gan, tas, ka nozīmē tas tiek ierakstīts kaut kur? 254 00:12:42,300 --> 00:12:42,550 SAM GREEN: Jā. 255 00:12:42,550 --> 00:12:44,216 Tāpēc es jums parādīs, kas notiek varētu notikt. 256 00:12:44,216 --> 00:12:48,085 Tātad jautājums bija, ko tas log nozīmē? 257 00:12:48,085 --> 00:12:51,262 >> Hugh Zabriskie: Tātad console.log ir kā printf par C. 258 00:12:51,262 --> 00:12:52,970 SAM GREEN: Tātad console.log ir kā printf, 259 00:12:52,970 --> 00:12:59,240 Tātad, ja man ir šī console.log ("sveiki"), un es aicinu, ka virkne "sveiki" 260 00:12:59,240 --> 00:13:00,730 izpaužas izdrukāt ar konsoli. 261 00:13:00,730 --> 00:13:03,340 Tas ir konsole. 262 00:13:03,340 --> 00:13:05,930 Tas ir tāpat kā printf, kur tas drukā uz standarta out. 263 00:13:05,930 --> 00:13:09,050 264 00:13:09,050 --> 00:13:11,230 Un mēs redzēsim pēc minūtes, bet tas ir faktiski 265 00:13:11,230 --> 00:13:16,529 atsaucoties uz konsoles objektu, un aicinot metodi par šo objektu. 266 00:13:16,529 --> 00:13:18,320 Tas būs daudz lietderīgāk pēc minūtes, kad mēs 267 00:13:18,320 --> 00:13:20,660 nokļūt runājam par objekti JavaScript, 268 00:13:20,660 --> 00:13:22,509 bet es domāju, ka es vēlētos pieminēt, ka. 269 00:13:22,509 --> 00:13:24,300 Hugh Zabriskie: Mēs esam izmanto, lai C, right-- 270 00:13:24,300 --> 00:13:27,580 mēs parasti rakstīt lielu programmu galvenais, lai kaut ko darīt. 271 00:13:27,580 --> 00:13:30,700 Bet to, kas ir cool JavaScript ir jums ir šāda veida tulka ka 272 00:13:30,700 --> 00:13:33,620 iet reālā laikā, tāpēc aizņem tikai pozīcijai, 273 00:13:33,620 --> 00:13:35,320 tā var tikai interpretēt, ka uz vietas. 274 00:13:35,320 --> 00:13:37,403 Un tas seko lietas, kas ir bijušas pirms, 275 00:13:37,403 --> 00:13:41,620 tāpēc tas ir diezgan noderīgs instruments, lai izmantot console.log vai konsoli, 276 00:13:41,620 --> 00:13:46,870 Parasti, lai tikai spēlē apkārt ar JavaScript. 277 00:13:46,870 --> 00:13:51,420 >> SAM GREEN: Tātad dodas atpakaļ uz šo example-- otro rindiņu kodu 278 00:13:51,420 --> 00:13:55,320 šeit ir diezgan prātā-boggling manā galvā. 279 00:13:55,320 --> 00:13:59,790 Pirmo reizi es izlasīju šo, tas bija, piemēram, to, kas notiek? 280 00:13:59,790 --> 00:14:04,580 Tātad, kas notiek, ir, tas funkcija deklarācijā teikts, 281 00:14:04,580 --> 00:14:10,170 Man ir funkcija sauc f2 kas ir gaidījis vienu argumentu, F, 282 00:14:10,170 --> 00:14:12,990 un tad tas prasa, ka funkcija, f, kas 283 00:14:12,990 --> 00:14:17,652 tika nodota tai kā argumentu ar sevi bez argumentiem. 284 00:14:17,652 --> 00:14:19,110 Tātad, kas varētu būt bijis mulsinoši. 285 00:14:19,110 --> 00:14:21,890 286 00:14:21,890 --> 00:14:28,400 Ja mēs saprotam to kā F2 notiek f1 kā argumentu, un tad iekšpusē F2, 287 00:14:28,400 --> 00:14:31,190 f izpaužas called-- kas nozīmē, ka šīs līnijas kodu, 288 00:14:31,190 --> 00:14:34,192 Pēc šīm divām līnijām kods, rezultāti "sveiki" 289 00:14:34,192 --> 00:14:35,400 tiek drukāts uz konsoli. 290 00:14:35,400 --> 00:14:41,660 291 00:14:41,660 --> 00:14:44,910 >> Fakts, ka mēs varam pāriet funkcijas ap kā vērtībām 292 00:14:44,910 --> 00:14:47,870 beidzas ar to viens no visvairāk spēcīgs iezīmes JavaScript 293 00:14:47,870 --> 00:14:49,700 kā programmēšanas valodu. 294 00:14:49,700 --> 00:14:52,782 Ārpus visi foršās lietas, to var darīt, 295 00:14:52,782 --> 00:14:54,990 tāpat kā iezīme no valodas izteiksmē, kā 296 00:14:54,990 --> 00:14:58,400 ka tas padara lietas vienkārši programmēt un ļauj 297 00:14:58,400 --> 00:15:01,060 par lietām, kas nav īpaši labi piemērots, lai tīmeklī, 298 00:15:01,060 --> 00:15:04,500 funkcionālā programmēšana un funkcionāls programmēšanas aspekti JavaScript 299 00:15:04,500 --> 00:15:07,130 ir viens no visbiežāk spēcīgi jēdzieni, kas 300 00:15:07,130 --> 00:15:11,030 pastāv JavaScript-- ja Jums uzdot mani. 301 00:15:11,030 --> 00:15:11,960 Cool. 302 00:15:11,960 --> 00:15:13,534 >> Tātad, nākamā lieta. 303 00:15:13,534 --> 00:15:16,450 Papildus tam, ka funkcionāla, tur ir arī elementi JavaScript 304 00:15:16,450 --> 00:15:20,510 kas ir objektorientētā, kas ir viens no ļoti 305 00:15:20,510 --> 00:15:23,800 tautas buzz vārdus datorzinātnēs. 306 00:15:23,800 --> 00:15:27,040 Objektorientētā programmēšana ir ļoti populāra lieta. 307 00:15:27,040 --> 00:15:34,210 JavaScript ir versija, ka, kur es uzskatu, ka katrs vērtība ir arī 308 00:15:34,210 --> 00:15:41,475 objekts, kas nozīmē, ka katram objektam wraps kopā kādu vērtību skaits. 309 00:15:41,475 --> 00:15:44,020 310 00:15:44,020 --> 00:15:49,750 Tātad vērtībām, kas ir vienkāršs, piemēram, vesels skaitlis, tāpat varX vienāds 5, 311 00:15:49,750 --> 00:15:52,250 ka objekts tikko wraps šo vienu vērtību. 312 00:15:52,250 --> 00:15:54,760 313 00:15:54,760 --> 00:15:59,036 >> Bet mēs varam arī iedomāties situāciju where-- mēs varam iedomāties situāciju C 314 00:15:59,036 --> 00:16:00,910 kur mēs vēlējāmies darīt kaut kas ar structs, 315 00:16:00,910 --> 00:16:03,285 piemēram, ka wraps vairāki vērtībām kopā un padara 316 00:16:03,285 --> 00:16:05,870 tas patiešām viegli nodot lietas apkārt. 317 00:16:05,870 --> 00:16:09,270 Tas ir, kad objekts ir JavaScript. 318 00:16:09,270 --> 00:16:12,340 >> Ir svarīgi atcerēties, kad es saku, ka objekti iesaiņota 319 00:16:12,340 --> 00:16:15,330 dažas no vērtībām skaits kopā, ka funkcijas ir arī 320 00:16:15,330 --> 00:16:21,506 vērtības, kas nozīmē, ka funkcijas var būt arī iekšpusē JavaScript objektu. 321 00:16:21,506 --> 00:16:26,910 Un tāpēc, ka ir svarīgi ir tas, ka, lai gan mēs bieži 322 00:16:26,910 --> 00:16:30,290 domāju, zvanot metodi uz objektu, kas ir 323 00:16:30,290 --> 00:16:35,200 populāru termiņu no otra tautas objektu orientētas valodās, 324 00:16:35,200 --> 00:16:39,330 viens no atšķirībām šeit ir tas, ka viss, ka metode ir JavaScript 325 00:16:39,330 --> 00:16:47,270 ir vērtība glabāta iekšpusē no objekta kas veic kādu action-- iespējams 326 00:16:47,270 --> 00:16:51,850 izmantojot citas vērtības, kas ir iekšā par šo priekšmetu, bet ne vienmēr. 327 00:16:51,850 --> 00:16:56,930 Tātad jūs varat iedomāties situāciju, es uzminēt, kas mazliet crazy veidā, 328 00:16:56,930 --> 00:17:02,990 kur jūs sauc metodi viena objektu uz citu objektu, piemēram. 329 00:17:02,990 --> 00:17:06,010 Tātad, tas ir mazliet bailīgs šādā veidā. 330 00:17:06,010 --> 00:17:09,369 >> Un jūs varat arī mainīt metodes kas ir saistīti ar objektu 331 00:17:09,369 --> 00:17:13,740 piešķirot ka metode jauns funkcija, kas ir arī 332 00:17:13,740 --> 00:17:18,250 diezgan atšķirīgs no citiem objektorientētā valodas, kur 333 00:17:18,250 --> 00:17:21,410 reiz mēs paziņojam objektu un instantiate to, 334 00:17:21,410 --> 00:17:25,839 mēs nevaram mainīt metodes, kas ir saistītas ar šo objektu vairs. 335 00:17:25,839 --> 00:17:28,680 Tātad tas ir diezgan atšķirīgs. 336 00:17:28,680 --> 00:17:29,570 Cool. 337 00:17:29,570 --> 00:17:34,010 >> Tātad, šeit ir piemērs, pirmkārt, objekta darbībā. 338 00:17:34,010 --> 00:17:36,390 Tas ir tas, ko sauc vispārējs objektu, kas 339 00:17:36,390 --> 00:17:39,460 nozīmē, ka tā nav nekādas īpaši nosaukums, nav klasi, 340 00:17:39,460 --> 00:17:42,190 tas ir tikai daži aplīmēšana vērtību. 341 00:17:42,190 --> 00:17:49,790 Un tā, ka izskatās, ir, mums ir šis ārējais pāris cirtaini bikšturi šeit 342 00:17:49,790 --> 00:17:57,950 kas norāda JavaScript un teikt, tas ir objekts. 343 00:17:57,950 --> 00:18:02,130 Vērtības iekšpusē no tā ir katra vērtības iekšā 344 00:18:02,130 --> 00:18:04,590 objekta, kas noteikts jāiesaiņo kopā. 345 00:18:04,590 --> 00:18:09,180 Un iekšpusē šo objektu, mums tad ir atslēgas vērtību pārus, 346 00:18:09,180 --> 00:18:13,880 kur atslēga attiecas uz nosaukumu, no vērtības iekšpusē no objekta, 347 00:18:13,880 --> 00:18:16,790 un otrs side-- pretī resnās here-- 348 00:18:16,790 --> 00:18:19,850 ir faktiskā vērtība ka jāuzglabā. 349 00:18:19,850 --> 00:18:26,210 >> Tātad jūs redzat šeit, ka mums ir Galvenais sauc fn ar vērtību Sam, 350 00:18:26,210 --> 00:18:29,430 seko komats, sakot, uz nākamo ierakstu. 351 00:18:29,430 --> 00:18:33,560 Tad galvenais sauc LN, ar kuru vērtība ir zaļā krāsā, 352 00:18:33,560 --> 00:18:35,840 seko komats, seko "drukāt" 353 00:18:35,840 --> 00:18:43,209 ko nāksies funkcijas vērtība kas gatavojas darīt šo rindiņu kodu. 354 00:18:43,209 --> 00:18:45,500 Pieņemsim veikt soli atpakaļ un izkravāt to, kas notiek šeit. 355 00:18:45,500 --> 00:18:47,280 Tātad tas ir mazliet sarežģīti, un mēs redzam kaut ko jaunu 356 00:18:47,280 --> 00:18:48,071 pirmo reizi. 357 00:18:48,071 --> 00:18:51,190 358 00:18:51,190 --> 00:18:55,065 Par "šo" atslēgvārds ir jauna lieta mēs redzam šeit, un ko tas dara 359 00:18:55,065 --> 00:19:00,540 ir, attiecas uz strāvas iebilst darbības joma, vai ne? 360 00:19:00,540 --> 00:19:03,990 Tātad, kad mēs sakām, tas norāda visu ceļu atpakaļ 361 00:19:03,990 --> 00:19:08,140 uz visu šo object-- kad mēs this.fn, 362 00:19:08,140 --> 00:19:11,990 mēs ejam, lai iet visu ceļu atpakaļ uz šo objektu, dodieties uz fn vērtību 363 00:19:11,990 --> 00:19:16,471 un saņemt Sam, izvelciet to visu ceļu atpakaļ, stick to šeit, un tad doties tālāk. 364 00:19:16,471 --> 00:19:19,838 >> Mērķauditorija: Tātad ar iegūšanai, ir ka darīts dēļ parametra 365 00:19:19,838 --> 00:19:20,621 definīcija? 366 00:19:20,621 --> 00:19:23,870 SAM GREEN: Tātad jautājums bija, ir atgūšana darīts tāpēc, ka parametra 367 00:19:23,870 --> 00:19:24,727 definīcija? 368 00:19:24,727 --> 00:19:25,435 Jā, pilnīgi noteikti. 369 00:19:25,435 --> 00:19:29,660 370 00:19:29,660 --> 00:19:32,470 Kas notiks šeit ir, šis punkts saka JavaScript, 371 00:19:32,470 --> 00:19:39,990 Labi, es saņemu dažas vērtības no šo objektu no sevis. 372 00:19:39,990 --> 00:19:46,375 Un tad tas būs meklēt ierakstu sauc fn, un, ja tā konstatē, ka ir, 373 00:19:46,375 --> 00:19:48,470 tas būs atgriešanās ka value-- tā, tas ir sam. 374 00:19:48,470 --> 00:19:51,540 Bet es arī varētu būt drukāti kaut kas nebija šeit definēts, 375 00:19:51,540 --> 00:19:54,090 un tad tas būtu vienkārši atgriezties undefined-- kas 376 00:19:54,090 --> 00:19:58,250 ir lieta, ka JavaScript var do, kas var būt priekšrocības, 377 00:19:58,250 --> 00:20:03,190 bet tas ir also-- ja jūs veicat typo, tas var izraisīt dīvaini kļūdas. 378 00:20:03,190 --> 00:20:05,617 Tātad tas būs tikai mēģināt atrast kāds jums pateikt to, lai atrastu 379 00:20:05,617 --> 00:20:07,700 un tas nav gatavojas sūdzēties ja neatrod to. 380 00:20:07,700 --> 00:20:11,390 Tas būs tikai teikt, man nav atrast, un tad doties tālāk. 381 00:20:11,390 --> 00:20:17,581 Tātad tas būtu undefined, plus tukšs, plus uzvārds. 382 00:20:17,581 --> 00:20:18,080 Jā. 383 00:20:18,080 --> 00:20:21,070 Un tad mēs varam redzēt, ka, ja mēs tad varētu iet uz leju un access-- 384 00:20:21,070 --> 00:20:25,450 un mēs aicinām tf.print () ar iekavās. 385 00:20:25,450 --> 00:20:30,000 Tas notiek, lai izsauktu šo drukāt funkcija bez argumentiem, vai ne? 386 00:20:30,000 --> 00:20:34,490 Bet, ja mēs tikko teica tf.print () semikols, bez iekavās, 387 00:20:34,490 --> 00:20:37,480 viss, kas būtu jādara, ir pull out funkciju no vērtības, 388 00:20:37,480 --> 00:20:40,609 bet faktiski to sauca. 389 00:20:40,609 --> 00:20:41,162 Cool. 390 00:20:41,162 --> 00:20:42,870 Hugh Zabriskie: Ja mēs objektu? 391 00:20:42,870 --> 00:20:44,161 SAM GREEN: Protams, pieņemsim darīt. 392 00:20:44,161 --> 00:20:48,750 Lai es varētu pārvietot šo piemērs ar konsoli. 393 00:20:48,750 --> 00:20:51,380 394 00:20:51,380 --> 00:20:55,466 Mēs varam iedomāties, ka man ir objekts. 395 00:20:55,466 --> 00:21:03,026 396 00:21:03,026 --> 00:21:04,150 Tātad tas ir vienkāršs objekts. 397 00:21:04,150 --> 00:21:06,910 398 00:21:06,910 --> 00:21:11,050 Tas ir objekts, kas satur divas vērtības ar divām atslēgām, divi atslēgu vērtība 399 00:21:11,050 --> 00:21:12,710 pāriem. 400 00:21:12,710 --> 00:21:21,850 Tāpēc es pēc tam var piekļūt vērtību glabājas iekšpusē šo objektu darot x.x1, 401 00:21:21,850 --> 00:21:23,400 Piemēram, un man 1 atpakaļ. 402 00:21:23,400 --> 00:21:29,590 Tāpat x.x2, saņemt šo vērtību atpakaļ. 403 00:21:29,590 --> 00:21:33,330 >> Un tagad tiešām atdzist lieta ir, es varu faktiski pievienot kaut ko, lai šo objektu 404 00:21:33,330 --> 00:21:34,316 pēc tam, kad es esmu izveidojis to. 405 00:21:34,316 --> 00:21:36,315 Tātad jūs varat iedomāties, pieņemsim saka man ir funkcija. 406 00:21:36,315 --> 00:21:44,430 407 00:21:44,430 --> 00:21:46,352 >> Hugh Zabriskie: You jādara Shift-Enter. 408 00:21:46,352 --> 00:21:47,643 >> SAM GREEN: Ak, tas ir kaitinošas. 409 00:21:47,643 --> 00:22:02,460 410 00:22:02,460 --> 00:22:04,324 Kas bija tas nepatīk? 411 00:22:04,324 --> 00:22:04,824 Oh. 412 00:22:04,824 --> 00:22:07,532 413 00:22:07,532 --> 00:22:08,691 Te nu mēs esam. 414 00:22:08,691 --> 00:22:09,190 Cool. 415 00:22:09,190 --> 00:22:12,840 >> Tāpēc es esmu tikko izveidojis šī funkcija, f, ka 416 00:22:12,840 --> 00:22:17,590 gatavojas doties uz pašreizējo objekts un drukāt this.x1. 417 00:22:17,590 --> 00:22:20,330 Tātad, ja es tikai aicinu f ar pati, nekas notiek 418 00:22:20,330 --> 00:22:26,970 notiktu, tiesības, jo nav x1 lauks objektā tas atsaucas. 419 00:22:26,970 --> 00:22:39,710 Bet, ja es saku, x.f = f, un tad es zvaniet x.f (), es esmu gatavojas, lai saņemtu atpakaļ 1. 420 00:22:39,710 --> 00:22:42,990 421 00:22:42,990 --> 00:22:46,530 Tas f funkcija tagad kas saistītas ar objekta x, 422 00:22:46,530 --> 00:22:51,800 kas ir galvenā sauc X1 kas saistītas ar vērtību 1, 423 00:22:51,800 --> 00:22:54,570 tad, kad mēs saucam this.x1, tas ir gatavojas atrast, ko tas meklē 424 00:22:54,570 --> 00:22:56,450 un varēs izdrukāt vērtību out. 425 00:22:56,450 --> 00:22:58,700 Tātad tas ir tikai viens piemērs no veida crazy lietām 426 00:22:58,700 --> 00:23:01,190 jūs varat darīt ar objektiem JavaScript. 427 00:23:01,190 --> 00:23:03,870 428 00:23:03,870 --> 00:23:07,560 >> Tā, ka versija bija vispārējs versija, kas nozīmē 429 00:23:07,560 --> 00:23:13,780 ka mēs esam izveidojuši objektu, izmantojot šo iekavas notation-- lencēm apzīmējums, 430 00:23:13,780 --> 00:23:16,880 rather-- un tas ir ērts, ja mēs vienkārši vēlamies 431 00:23:16,880 --> 00:23:21,440 vienā gadījumā no konkrētā objekta, bet kas notiks, ja mēs vēlamies, lai būtu vairāk nekā viens 432 00:23:21,440 --> 00:23:22,210 no tāda paša veida? 433 00:23:22,210 --> 00:23:24,440 Un to, ka atbilde Jautājums ir, ir lietas 434 00:23:24,440 --> 00:23:26,760 sauc nodarbības JavaScript kā arī. 435 00:23:26,760 --> 00:23:31,470 436 00:23:31,470 --> 00:23:36,420 Mēs varam izveidot funkciju, kas nav kaut kādas inicializācijas veida 437 00:23:36,420 --> 00:23:41,690 par ārvalstu objektu, un mēs teiktu, piemēram, 438 00:23:41,690 --> 00:23:44,550 mans class-- tā nosaukuma no atkārtoti lietojamā object-- 439 00:23:44,550 --> 00:23:47,100 vienāds funkcija, kas nosaka to uz augšu. 440 00:23:47,100 --> 00:23:52,280 Tātad, kas tas būtu līdzvērtīgs lai ir izveidot objektu, kas 441 00:23:52,280 --> 00:23:55,930 būtu tāpat kā, cirtaini lencēm, str, resnās zarnas, 442 00:23:55,930 --> 00:23:59,630 tas ir virkne, semikols, cirtaini lencēm. 443 00:23:59,630 --> 00:24:01,880 Tas būtu vispārējs objekts mēs sāktu, 444 00:24:01,880 --> 00:24:06,380 ar vienu atšķirība ir uz Nākamās līnijas mēs radīt prototipu, kas 445 00:24:06,380 --> 00:24:11,190 nozīmē, ka tā ir noklusējuma atslēga, kas mēs pievienot mūsu objektu, 446 00:24:11,190 --> 00:24:13,970 ir vērtība sarakstīti šeit. 447 00:24:13,970 --> 00:24:20,570 Kas nozīmē, ka, ja es izveidotu jaunu instance šo MyClass objektu, 448 00:24:20,570 --> 00:24:27,440 tas notiek, lai ir pre-built iekšpusē tā vērtība sauc str un citu vērtību 449 00:24:27,440 --> 00:24:32,418 sauc myPrint, kas ir būs funkcija. 450 00:24:32,418 --> 00:24:32,918 Awesome. 451 00:24:32,918 --> 00:24:37,410 452 00:24:37,410 --> 00:24:37,990 >> Liels. 453 00:24:37,990 --> 00:24:40,710 Tātad pēdējā lieta saka par JavaScript 454 00:24:40,710 --> 00:24:46,430 ir tas, ka tas ir patiešām noderīga ko sauc par asinhronā darbības. 455 00:24:46,430 --> 00:24:52,500 Asynchronous nozīmē, ka mēs var gaidīt kādu operāciju 456 00:24:52,500 --> 00:24:57,870 lai pabeigtu pirms mēs pārejam tālāk, bet doties tālāk, kamēr mēs gaidām 457 00:24:57,870 --> 00:24:59,690 un tad ir kaut kas notiks vēlāk. 458 00:24:59,690 --> 00:25:03,480 Un ko es domāju ar šo ir, jūs var iedomāties situāciju, kad 459 00:25:03,480 --> 00:25:06,850 jums nosūtīt pieprasījumu daži web serveri kaut kur, 460 00:25:06,850 --> 00:25:09,670 un tas notiek, lai nosūtīt jums atpakaļ daži liels rieciens datu, vai ne? 461 00:25:09,670 --> 00:25:13,320 Un jūsu lietotājs var gaidīt In Tikmēr, lai tas notiktu, 462 00:25:13,320 --> 00:25:15,200 un nekas nevar būt notiek tajā laikā. 463 00:25:15,200 --> 00:25:18,110 Bet tas nav liels projekts, labi? 464 00:25:18,110 --> 00:25:20,214 Jūs nevēlaties mājas lapa iesaldēt. 465 00:25:20,214 --> 00:25:22,380 Ko darīt, ja lietotājs vēlas noklikšķiniet uz nolaižamās izvēlnes? 466 00:25:22,380 --> 00:25:24,870 Tas nav liels dizaina modelis. 467 00:25:24,870 --> 00:25:29,290 Tā vietā, būtībā, ko JavaScript tas ir teikts, 468 00:25:29,290 --> 00:25:31,870 OK, vai šo darbību asinhroni. 469 00:25:31,870 --> 00:25:36,520 Tātad, piemēram, jāgaida fonā, un tad, kad darbība tiek veikta, 470 00:25:36,520 --> 00:25:39,420 zvaniet atzvanu function-- zvaniet kādu funkciju, 471 00:25:39,420 --> 00:25:43,800 do daži action-- kas signalizē, ka operācija mēs gaidījām, lai izbeigtu 472 00:25:43,800 --> 00:25:45,520 Beidzies. 473 00:25:45,520 --> 00:25:51,240 Un tāpēc, ka ir super spēcīgs ir, mēs varam kaut ko darīt, iet argumentu, 474 00:25:51,240 --> 00:25:54,440 kaut ko darīt, un tad jāgaida lai kaut kas notiktu. 475 00:25:54,440 --> 00:25:58,970 Tad, kad šī kaut ko pabeidz, mēs varam zvanīt atzvanu. 476 00:25:58,970 --> 00:26:03,300 Tas ir patiešām ērts, jo tas ļauj mums darīt lietas ar tīmekļa audio API, 477 00:26:03,300 --> 00:26:07,490 piemēram, piemēram, novietotu audio failu no attālā servera 478 00:26:07,490 --> 00:26:11,660 negaidot par Visa audio failu jānoslogo, 479 00:26:11,660 --> 00:26:14,440 kas būtu patiešām slikti lietotāju pieredzi. 480 00:26:14,440 --> 00:26:17,080 Cool. 481 00:26:17,080 --> 00:26:19,460 >> Pēdējo pāris piezīmes par debugging, jo tas 482 00:26:19,460 --> 00:26:23,682 ir lieta, jūs nāksies darīt kā daļu no jūsu projektu, garantēta. 483 00:26:23,682 --> 00:26:25,140 Es pieminēju JavaScript konsole. 484 00:26:25,140 --> 00:26:27,550 Tas ir super noderīgs iezīme no visām mūsdienu pārlūkprogrammām, 485 00:26:27,550 --> 00:26:30,300 Un mēs tiešām aicinam jūs nokļūt ērti, izmantojot jūsu konsole, 486 00:26:30,300 --> 00:26:33,660 Ja jūs vēlaties iegūt labi JavaScript. 487 00:26:33,660 --> 00:26:36,320 Tas ir super ērts debugging, bet tas ir arī 488 00:26:36,320 --> 00:26:39,440 patiešām noderīga norādītas , kā izmantot API. 489 00:26:39,440 --> 00:26:41,950 Tas ļauj patiešām viegli eksperimentēšana 490 00:26:41,950 --> 00:26:45,910 nerakstot daži kodu, un pēc tam apkopot to. 491 00:26:45,910 --> 00:26:47,500 Jums nav jādara visus šos soļus. 492 00:26:47,500 --> 00:26:49,619 Jūs varat vienkārši uzrakstīt daži kodu līnijas, 493 00:26:49,619 --> 00:26:52,410 un pēc tam saņemt tūlītēju atgriezenisko saiti par vai šī līnija koda 494 00:26:52,410 --> 00:26:55,230 worked-- ļoti ērts. 495 00:26:55,230 --> 00:26:59,760 >> Un arī, tikai viens tehniskais note-- JavaScript konsole ir piemērs 496 00:26:59,760 --> 00:27:05,680 no REPL-- tā, kas ir R-E-P-L, repl, kas apzīmē lasīt, novērtēt, 497 00:27:05,680 --> 00:27:06,180 drukāt cilpa. 498 00:27:06,180 --> 00:27:09,100 499 00:27:09,100 --> 00:27:12,120 Jūs esat gatavojas rakstīt daži sīkumi in, tas būs lasīt to, ko jūs ierakstījāt, 500 00:27:12,120 --> 00:27:17,280 tas būs novērtēt to, un tas būs drukāt produkciju, un tad tas būs sākums atkal. 501 00:27:17,280 --> 00:27:22,056 Tas ļauj ātri iet apļi atkārtojot, kas ir patiešām foršs. 502 00:27:22,056 --> 00:27:25,150 503 00:27:25,150 --> 00:27:28,930 >> Es domāju reālu Pēdējo note-- šis ir faktiskā pēdējā piezīme, jā. 504 00:27:28,930 --> 00:27:30,780 Kā mēs faktiski izmantot JavaScript? 505 00:27:30,780 --> 00:27:34,040 Tātad, pirmkārt, mēs varam importēt tā, izmantojot skriptu tag 506 00:27:34,040 --> 00:27:39,500 augšā vai apakšā HTML file-- jebkur iekšpusē HTML failu, 507 00:27:39,500 --> 00:27:40,440 tiešām. 508 00:27:40,440 --> 00:27:47,390 Un ietvaros skriptu tag, ir divas apakšgrupas veidi importē JavaScript. 509 00:27:47,390 --> 00:27:51,370 Pirmais ir, kam atsevišķa JavaScript fails 510 00:27:51,370 --> 00:27:58,010 ka mēs importējam kopumā, vai ar kuru platība kodu, piemēram, skriptu 511 00:27:58,010 --> 00:28:00,290 lai sāktu, un pēc tam slīpsvītru skriptu, lai pārtrauktu. 512 00:28:00,290 --> 00:28:02,620 Un tad mēs vienkārši uzrakstīt JavaScript iekšpusē HTML failu. 513 00:28:02,620 --> 00:28:03,790 Tie ir divi veidi. 514 00:28:03,790 --> 00:28:05,165 Jūs nevarat būt tā iekšpusē HTML. 515 00:28:05,165 --> 00:28:06,502 516 00:28:06,502 --> 00:28:08,126 Mērķauditorija: Ir viens labāk nekā citi? 517 00:28:08,126 --> 00:28:10,542 SAM GREEN: Jautājums bija, ir viens labāk nekā citi. 518 00:28:10,542 --> 00:28:18,306 Tātad, jā, kā kodēšana stila praksi, un arī tas ir kā dizaina praksi. 519 00:28:18,306 --> 00:28:20,180 Ir divi iemesli kāpēc tas varētu būt labāks. 520 00:28:20,180 --> 00:28:23,934 Pirmais ir, tas padara jūsu kodu A Daudz vieglāk lasāmu, ja visas jūsu HTML 521 00:28:23,934 --> 00:28:27,100 ir vienā vietā, visas jūsu CSS ir vēl viena vieta, visi JavaScript 522 00:28:27,100 --> 00:28:28,420 ir trešā vietā. 523 00:28:28,420 --> 00:28:28,920 Tiesības? 524 00:28:28,920 --> 00:28:32,370 Es domāju, ka mums vajadzētu jau esam runājuši par to sections-- piemēram CSS-- ko 525 00:28:32,370 --> 00:28:35,220 ka is-- un tā iet bieži citā failā. 526 00:28:35,220 --> 00:28:37,090 Tātad, līdzīgi veida koncepcijas šeit. 527 00:28:37,090 --> 00:28:42,410 Jūs varat arī iedomāties, ka JavaScript tiktu atkārtoti uz vairāk nekā vienu 528 00:28:42,410 --> 00:28:47,350 HTML lapas, vai varbūt Ļoti daudz HTML lapas, 529 00:28:47,350 --> 00:28:49,340 un kam, ka JavaScript refactored vienā 530 00:28:49,340 --> 00:28:51,950 failu, ka jūs varat importēt par vairāk nekā vienā vietā 531 00:28:51,950 --> 00:28:54,570 ļauj kods būt tā vairāk maintainable. 532 00:28:54,570 --> 00:28:57,930 Jūs varat iedomāties, veicot vienu mainīties ar JavaScript 533 00:28:57,930 --> 00:29:00,070 un kam to mainīt 100 dažādiem failiem. 534 00:29:00,070 --> 00:29:04,070 Un tā vietā, mēs varam vienkārši mainīt vienā, kas ir daudz vairāk spēcīgu. 535 00:29:04,070 --> 00:29:05,420 Vai es atbildētu uz jūsu jautājumu? 536 00:29:05,420 --> 00:29:07,950 Cool. 537 00:29:07,950 --> 00:29:10,830 >> Mēs varam arī ievadīts konsole, kā mēs esam minēts iepriekš. 538 00:29:10,830 --> 00:29:15,070 Un atkal, viena pēdējā note-- Web Audio ir celta, 539 00:29:15,070 --> 00:29:16,978 Jums nav nepieciešams, lai ielādētu kaut ko. 540 00:29:16,978 --> 00:29:17,478 Cool. 541 00:29:17,478 --> 00:29:20,519 Vai ir kādi jautājumi, jums ir vairāk jautājumi par JavaScript, 542 00:29:20,519 --> 00:29:21,930 Pirms mēs virzāmies tālāk? 543 00:29:21,930 --> 00:29:24,286 >> Mērķauditorija: [dzirdams] 544 00:29:24,286 --> 00:29:25,410 SAM GREEN: Labi, atdzesē. 545 00:29:25,410 --> 00:29:27,200 Tāpēc tagad viņš gatavojas runāt par API. 546 00:29:27,200 --> 00:29:28,490 >> Hugh Zabriskie: Cool. 547 00:29:28,490 --> 00:29:28,990 Pateicība, Sam. 548 00:29:28,990 --> 00:29:30,184 >> SAM GREEN: Protams. 549 00:29:30,184 --> 00:29:32,600 Hugh Zabriskie: satriecošs, tāpēc mēs pāriet no JavaScript. 550 00:29:32,600 --> 00:29:35,350 Tātad mēs esam runājuši par kādu essentials JavaScript, 551 00:29:35,350 --> 00:29:41,105 un tie ir mainīgie, funkcijas, objekti, darbojas kā mainīgo, 552 00:29:41,105 --> 00:29:41,980 asinhrono iekraušana. 553 00:29:41,980 --> 00:29:46,100 Tās ir visas lietas, kas jums redzēt, kā jūs izmantojat Web Audio. 554 00:29:46,100 --> 00:29:49,230 Tātad mēs esam tikai gatavojas runāt par to vispirms ir augstā līmenī. 555 00:29:49,230 --> 00:29:52,120 >> Tas ir API, tāpēc tas ir kaut kas kas ir būvēts, kā teica Sam, 556 00:29:52,120 --> 00:29:57,010 labi uz JavaScript ka jūs izmantot konsoli. 557 00:29:57,010 --> 00:30:01,020 Un tas ir faktiski tāpat kā C ++ kods kas ir patiešām iebūvēta Chrome 558 00:30:01,020 --> 00:30:04,470 un Firefox, un visi šie pārlūkiem. 559 00:30:04,470 --> 00:30:07,060 Tātad galvenā ideja ar Web Audio ir tas, ka jums ir 560 00:30:07,060 --> 00:30:09,440 šāda veida cauruļvadu audio, vai ne? 561 00:30:09,440 --> 00:30:13,670 Tātad jūsu audio dati nāk kaut kādā veidā. 562 00:30:13,670 --> 00:30:16,690 >> Ir sava veida trīs galvenās forms-- Jums ir oscilators, kas 563 00:30:16,690 --> 00:30:21,340 rada sine vilnis, kosinuss vilnis, mēs ejam, lai redzētu, kā tas darbojas. 564 00:30:21,340 --> 00:30:23,890 Vēl viens ļoti izplatīts, protams, ir MP3. 565 00:30:23,890 --> 00:30:25,810 Tātad, varbūt jūs sākat ar dziesma, un tad jūs 566 00:30:25,810 --> 00:30:28,320 vēlaties darīt kādu filtrēšana lai kas un izejas 567 00:30:28,320 --> 00:30:30,605 that-- ka varētu būt iespējams avots. 568 00:30:30,605 --> 00:30:32,480 Un tad tiešām foršs viens ir mikrofons. 569 00:30:32,480 --> 00:30:37,230 Tātad jūs varat izmantot kādu ļoti Pamata aicina JavaScript 570 00:30:37,230 --> 00:30:39,440 piekļūt pie mikrofons, un tādēļ, ja jūs 571 00:30:39,440 --> 00:30:42,870 gribēju, lai app kā piķis detektoru, 572 00:30:42,870 --> 00:30:45,290 piemēram, ka veic, Tava balss un skaitļi, 573 00:30:45,290 --> 00:30:47,740 pitch-- ļoti vienkāršs veids, kā to. 574 00:30:47,740 --> 00:30:50,730 Jūs varat vienkārši veida izlasīt in, izrēķināt frekvenci, 575 00:30:50,730 --> 00:30:52,250 un tad izejas numuru. 576 00:30:52,250 --> 00:30:56,080 Tātad mēs redzēsim, kā tas darbojas, kā labi. 577 00:30:56,080 --> 00:30:59,430 >> Galamērķis ir būtībā kur audio dati ir izeja. 578 00:30:59,430 --> 00:31:02,890 Tātad kopumā, tas ir tāpat kā Jūsu klēpjdators skaļruņi. 579 00:31:02,890 --> 00:31:05,610 Citas iespējas ir, piemēram, ScriptProcessorNode-- 580 00:31:05,610 --> 00:31:07,990 mēs sāksim mezgliem second-- bet būtībā, 581 00:31:07,990 --> 00:31:11,939 nu jūs liekot skaņu out izmantojot datoru caur skaļruņiem, 582 00:31:11,939 --> 00:31:14,730 vai jūs esat veida ierakstu, tāpēc jūs uzglabāt to kā audio datiem. 583 00:31:14,730 --> 00:31:18,980 Tātad, varbūt, ja kāds rada mūzika jūsu app un tad 584 00:31:18,980 --> 00:31:22,410 Jūs vēlaties, lai ierakstītu, ka un varbūt, piemēram, eksportēt to uz SoundCloud, par example-- 585 00:31:22,410 --> 00:31:25,281 tas būtu viens veids, kā to darīt. 586 00:31:25,281 --> 00:31:27,030 Visi fun stuff, kuru mēs runājam par, 587 00:31:27,030 --> 00:31:29,950 notiek starp šiem diviem punktiem, kur mēs slodze mūzikā 588 00:31:29,950 --> 00:31:31,410 un tad izejas tā. 589 00:31:31,410 --> 00:31:36,660 >> Tāpēc es esmu gatavojas runāt par pieciem posmi audio ražošanas sekundē. 590 00:31:36,660 --> 00:31:38,950 Mums ir šī lieta, ko sauc AudioContext, kas 591 00:31:38,950 --> 00:31:41,580 tas ir maz wrapper mēs redzam šeit. 592 00:31:41,580 --> 00:31:49,980 Būtībā tas, ko AudioContext is-- ja mēs iet uz JavaScript konsole tieši tagad, 593 00:31:49,980 --> 00:31:52,740 mēs varam izveidot vienu tieši tagad. 594 00:31:52,740 --> 00:31:54,040 Tikai piemērs repl, vai ne? 595 00:31:54,040 --> 00:31:57,880 Mēs lasāt, izvērtējot, un tas drukā. 596 00:31:57,880 --> 00:32:00,260 >> AudioContext ir pasaules valsts. 597 00:32:00,260 --> 00:32:05,500 Tas ir struct, tas ir objekts šeit, un tas saglabā informāciju 598 00:32:05,500 --> 00:32:09,960 par lietām, kas notiek uz ekrāna, kas saistīts ar audio. 599 00:32:09,960 --> 00:32:15,220 Viens piemērs ir pašreizējais laiks. 600 00:32:15,220 --> 00:32:18,910 Tas stāsta jums skaitu sekundes, ļoti precīzi, 601 00:32:18,910 --> 00:32:20,890 Kopš mājas lapas ielādes. 602 00:32:20,890 --> 00:32:24,110 Tātad tas ir patiešām noderīga maz īpašumu, ka jūs varat izmantot. 603 00:32:24,110 --> 00:32:27,898 Tas ir lasīt only-- es domāju tiešām Jūs varat mēģināt noteikt to vērtību. 604 00:32:27,898 --> 00:32:29,856 Tas jums pateiks noteikt to, un tad, ja jūs to izdrukāt 605 00:32:29,856 --> 00:32:31,439 again-- tas faktiski nav gluži darbs. 606 00:32:31,439 --> 00:32:34,472 Tātad tur ir tikai lasāms īpašības JavaScript. 607 00:32:34,472 --> 00:32:36,430 Tas ir patiešām noderīga, ja jūs esat veida sinhronizāciju 608 00:32:36,430 --> 00:32:38,610 daudz atšķirīgs informāciju, kad jūs esat 609 00:32:38,610 --> 00:32:41,280 veida spēlējot dažādas skaņas. 610 00:32:41,280 --> 00:32:43,630 >> Vēl patiešām noderīga viens ir konteksts galamērķis. 611 00:32:43,630 --> 00:32:46,587 612 00:32:46,587 --> 00:32:49,670 Noteikti, ja jūs interesē, jābūt mēģina šo pie sava konsole tiesības 613 00:32:49,670 --> 00:32:50,980 tagad. 614 00:32:50,980 --> 00:32:53,150 Tātad šī ir AudioDestinationNode. 615 00:32:53,150 --> 00:32:56,480 Būtībā, ko tas saka, ir, kur ir izeja notiek? 616 00:32:56,480 --> 00:32:59,590 Tātad ir divas reālas iespējas šeit. 617 00:32:59,590 --> 00:33:01,940 Parasti noklusējuma ir tikai jūsu skaļruņi, 618 00:33:01,940 --> 00:33:05,150 tik AudioDestinationNode būtībā tikai saka 619 00:33:05,150 --> 00:33:09,240 tur ir nulle izejas skaņu nāk, nosūta uz skaļruni. 620 00:33:09,240 --> 00:33:12,050 Tātad kopumā, jums nav ir spēlēt ar to. 621 00:33:12,050 --> 00:33:15,720 Ja jūs interesē, faktiski izmantojot ScriptProcessorNode ierakstīšanai, 622 00:33:15,720 --> 00:33:16,990 noteikti atvašu man e-pasts vēlāk, jo tas ir 623 00:33:16,990 --> 00:33:18,330 nedaudz sarežģītāk. 624 00:33:18,330 --> 00:33:21,590 Bet vispār, tu esi tikai veida outputting skaņu tādā vai citādā veidā. 625 00:33:21,590 --> 00:33:24,347 Tik forši, mēs lēkt atpakaļ šeit. 626 00:33:24,347 --> 00:33:25,180 Mērķauditorija: Es atvainojos. 627 00:33:25,180 --> 00:33:26,054 Hugh Zabriskie: Jā. 628 00:33:26,054 --> 00:33:28,770 Mērķauditorija: Es zinu, jūs teicāt, lai runātu ar jums vēlāk par ierakstu. 629 00:33:28,770 --> 00:33:31,550 Vai jūs varat interfeiss, kas ar Pro Tools? 630 00:33:31,550 --> 00:33:33,120 >> Hugh Zabriskie: Ar Pro Tools? 631 00:33:33,120 --> 00:33:35,260 Paskatīsimies. 632 00:33:35,260 --> 00:33:37,220 Es tā nedomāju. 633 00:33:37,220 --> 00:33:41,670 Tā iet starp klientu, kas ir JavaScript 634 00:33:41,670 --> 00:33:44,310 konsole, un jūsu faktiskā dators, parasti 635 00:33:44,310 --> 00:33:46,490 kaut kas ir sava veida no pie robežas, ja jums 636 00:33:46,490 --> 00:33:52,320 būs, kind pēc būtības the-- tas ir sava veida dizaina lieta, 637 00:33:52,320 --> 00:33:57,770 bet jūs mēģināt saglabāt pārlūku atsevišķi no lietotāja faktisko datorā. 638 00:33:57,770 --> 00:34:02,310 Parasti, vienīgais, ko tu esi spējīgs Pieeja ir mikrofons vai kamera. 639 00:34:02,310 --> 00:34:04,730 Tu neesi spējīgs, es nedomāju, izmantojiet Pro Tools. 640 00:34:04,730 --> 00:34:07,480 Tomēr, ja esat izveidojis dziesmu Pro Tools, 641 00:34:07,480 --> 00:34:12,710 eksportē, ka jūs varētu ielādēt ka šeit, filtrē, piemēram, 642 00:34:12,710 --> 00:34:16,820 process, kas, un reģistrē to, ka stājas Audio Destination-- vai, no-- lode 643 00:34:16,820 --> 00:34:17,870 Procesors mezglā. 644 00:34:17,870 --> 00:34:20,730 Un tad no turienes, jūs varētu eksportēt, ka, lai SoundCloud, jums 645 00:34:20,730 --> 00:34:25,320 varētu nosūtīt to uz e-pastu, vai kāds jums patīk no turienes. 646 00:34:25,320 --> 00:34:31,159 >> Bet tur ir sava veida nelielu barjeru starp padarot mūziku datorā 647 00:34:31,159 --> 00:34:33,050 un padarot mūziku tiešsaistē. 648 00:34:33,050 --> 00:34:37,940 >> SAM GREEN: Un tas ir nav unikāls šo API. 649 00:34:37,940 --> 00:34:44,060 Tas ir drošības līdzeklis Chrome, un Es domāju, ka katru otro modernu pārlūkprogrammu. 650 00:34:44,060 --> 00:34:45,860 Pārlūkprogramma ir pašpietiekams. 651 00:34:45,860 --> 00:34:50,980 Tā, piemēram, web lapas nevar izmantot JavaScript, lai ieslēgtu skaņu 652 00:34:50,980 --> 00:34:54,190 uz uz skaļruņiem, piemēram. 653 00:34:54,190 --> 00:34:58,120 Vai tas nevar izslēdziet datoru. 654 00:34:58,120 --> 00:35:01,530 Un nav viduspunkts starp šīm divām lietām, pa labi, 655 00:35:01,530 --> 00:35:05,960 lai nu jums ir pilnīga abstrakcija, 656 00:35:05,960 --> 00:35:10,050 vai jūs atvērtu drošības plaisāt, ļaujot 657 00:35:10,050 --> 00:35:14,440 programmētājs ar ļauniem nodomiem darīt ko vien viņi vēlas ar savu portatīvo datoru. 658 00:35:14,440 --> 00:35:18,104 Un tas ir iemesls, kāpēc Chrome ir pašpietiekams. 659 00:35:18,104 --> 00:35:19,310 >> Hugh Zabriskie: Jā. 660 00:35:19,310 --> 00:35:20,840 Vai tas ir jēga? 661 00:35:20,840 --> 00:35:21,369 Atdzesē, atdzesē. 662 00:35:21,369 --> 00:35:23,160 Man bija tikai gatavojas rādīt piemēru vienu. 663 00:35:23,160 --> 00:35:25,118 Tas ir diezgan daudz, kā cik jūs saņemsiet, attiecībā 664 00:35:25,118 --> 00:35:26,950 piekļūt lietotāja datoru. 665 00:35:26,950 --> 00:35:30,180 Ja jums ir USB klaviatūra pieslēgts, Jūs varat izmantot kaut ko sauc par Web 666 00:35:30,180 --> 00:35:32,180 MIDI API, kas mums nebūs tiešām runāt par šeit, 667 00:35:32,180 --> 00:35:36,330 bet tas ir vēl viens API, kas ir iebūvēts vismaz Chrome-- atkal, 668 00:35:36,330 --> 00:35:41,570 Tas ir iemesls, kāpēc mēs mīlam Chrome-- Es domāju, Firefox vai Safari, 669 00:35:41,570 --> 00:35:44,300 tas ir viegli lieta google-- dažādās pārlūkprogrammās ir 670 00:35:44,300 --> 00:35:46,917 atšķirīgs atbalsts, par kuru API tās ir īstenotas. 671 00:35:46,917 --> 00:35:49,875 Bet, ja jūs vēlaties, lai kontaktdakšu klaviatūru un strādāt ar šo informāciju, 672 00:35:49,875 --> 00:35:52,850 veida sūtīt tastatūru Informācija pa datoram 673 00:35:52,850 --> 00:35:57,620 un pēc tam izmantot šo tiešsaistē, šo API ir, ja tu būsi strādāt ka. 674 00:35:57,620 --> 00:35:58,150 >> Cool. 675 00:35:58,150 --> 00:35:58,710 LABI. 676 00:35:58,710 --> 00:36:01,320 Tātad, ātri pārvietojas uz šeit. 677 00:36:01,320 --> 00:36:03,310 Kā mums klājas laikā? 678 00:36:03,310 --> 00:36:04,210 >> SPEAKER 1: Par 15. 679 00:36:04,210 --> 00:36:05,543 >> Hugh Zabriskie: 15 minūtes pa kreisi? 680 00:36:05,543 --> 00:36:06,160 OK, atdzesē. 681 00:36:06,160 --> 00:36:08,170 Tātad mēs skrējiens uz priekšu šeit. 682 00:36:08,170 --> 00:36:13,500 >> Vārdu sakot, galvenais punkts domājot par to kā cauruļvads 683 00:36:13,500 --> 00:36:16,430 ir tas, ka katrs solis cauruļvada ir virkne audio mezgliem. 684 00:36:16,430 --> 00:36:19,284 685 00:36:19,284 --> 00:36:20,950 Mūsu avots, teiksim, ir oscilatoru. 686 00:36:20,950 --> 00:36:23,380 Mums ir nepieciešams, lai izveidotu oscilators mezglā. 687 00:36:23,380 --> 00:36:25,690 Un tas ir tikai sava veida par maz function-- 688 00:36:25,690 --> 00:36:30,460 un viņi visi pamatā no no audio konteksta šeit. 689 00:36:30,460 --> 00:36:32,885 >> Mērķauditorija: Kad tā teica oscilatoru, tas nozīmē 690 00:36:32,885 --> 00:36:37,250 tas tiešām burtiski iet no divi dažādi stabi un atpakaļ? 691 00:36:37,250 --> 00:36:41,170 >> Hugh Zabriskie: Nē, tas ir tāpat kā digitālo pārstāvība. 692 00:36:41,170 --> 00:36:42,740 Tas ir faktiski īstenoti C ++. 693 00:36:42,740 --> 00:36:46,460 Es tiešām nezinu specs par to, cik tas ir reāli īstenots, 694 00:36:46,460 --> 00:36:48,500 bet tas viss strādā kā bināros datus. 695 00:36:48,500 --> 00:36:51,260 696 00:36:51,260 --> 00:36:52,370 Patiesībā, jā. 697 00:36:52,370 --> 00:36:53,950 Tas būtu saprotams, es varētu patiesībā, ja jūs interesē, 698 00:36:53,950 --> 00:36:56,533 Es varētu nosūtīt jums mazliet vairāk informācija par to, kā viļņu 699 00:36:56,533 --> 00:37:00,181 tiek turēti kam ciparu formātā. 700 00:37:00,181 --> 00:37:00,680 OK, atdzesē. 701 00:37:00,680 --> 00:37:03,120 >> Tātad mēs esam radot toni, piemēram, sine viļņu vai kaut kas tamlīdzīgs, varbūt 702 00:37:03,120 --> 00:37:04,190 440 Hertz. 703 00:37:04,190 --> 00:37:05,830 Mēs izveidot oscilatoru. 704 00:37:05,830 --> 00:37:09,180 Ja mēs gribam, lai uzstādītu skaļumu, mēs pieslēgties kaut uz GainNode, 705 00:37:09,180 --> 00:37:12,500 ko mēs varētu darīt ar .creategain. 706 00:37:12,500 --> 00:37:14,250 Kas nosaka savu skaļumu. 707 00:37:14,250 --> 00:37:17,820 Jūs varat iet, ka uz jebkura no otras puses options-- labi, 708 00:37:17,820 --> 00:37:20,300 tāpēc audio buferis avots mezgls ir, ja jūs varētu 709 00:37:20,300 --> 00:37:23,660 uzglabāt MP3 ka esat ievietotā. 710 00:37:23,660 --> 00:37:27,670 >> Biquad filtru filtrēšanas ja Jūs vēlaties veikt visus bāzi out 711 00:37:27,670 --> 00:37:29,630 par dziesmu, vai kaut kas tamlīdzīgs. 712 00:37:29,630 --> 00:37:32,450 Nedod Dievs jūs vēlaties veikt bāzes no dziesmu. 713 00:37:32,450 --> 00:37:36,980 Un AudioDestination mezgls ir, atkal, piemēram, kur mūsu noslēgšana ir. 714 00:37:36,980 --> 00:37:39,980 Ja jūs esat kādreiz interesē redzēt visi dažādas iespējas, 715 00:37:39,980 --> 00:37:45,190 dodieties uz cilni un ļaujiet auto-pilnīgs nākt klajā. 716 00:37:45,190 --> 00:37:48,690 Un, ja jums izveidot, jūs redzēsiet visu dažādas lietas, ko jūs varat izveidot. 717 00:37:48,690 --> 00:37:50,398 Jūs varat izveidot dinamisku skriptu procesori, 718 00:37:50,398 --> 00:37:52,940 Es pat nezinu, kas tas ir, sajaucot kanālu apvienošanos 719 00:37:52,940 --> 00:37:55,930 un kanālu šķēlēji, viss kas. 720 00:37:55,930 --> 00:37:56,430 Cool. 721 00:37:56,430 --> 00:37:59,560 722 00:37:59,560 --> 00:38:01,390 >> Tātad tas ir tikai piemērs cauruļvada. 723 00:38:01,390 --> 00:38:03,580 Tātad mums ir trīs avoti nāk. 724 00:38:03,580 --> 00:38:06,830 Varbūt tie ir viļņu forma, varbūt tie ir MP3. 725 00:38:06,830 --> 00:38:08,740 Viens notiek caur filtra, otrs ir 726 00:38:08,740 --> 00:38:12,404 kļūst izkropļota cits viens ir panoramēšana pa kreisi un pa labi. 727 00:38:12,404 --> 00:38:15,320 Jūs varat darīt visu veidu lietas, un viņi visi jauc apkārt kopā, 728 00:38:15,320 --> 00:38:18,880 un pēc tam ārā nāk audio beigās, kā galamērķi. 729 00:38:18,880 --> 00:38:22,720 Tas ir piemērs tam, ko vēl sarežģīts Web Audio kods izskatās. 730 00:38:22,720 --> 00:38:26,720 Jūs veidojat visus šos dažādi objekti tiesības here-- 731 00:38:26,720 --> 00:38:27,706 Es neesmu pārliecināts par to. 732 00:38:27,706 --> 00:38:29,120 Nē, tas nav tuvinātu. 733 00:38:29,120 --> 00:38:29,620 LABI. 734 00:38:29,620 --> 00:38:31,257 >> SAM GREEN: You do kontrole, Scroll-Up. 735 00:38:31,257 --> 00:38:32,590 Hugh Zabriskie: Control Scroll-- 736 00:38:32,590 --> 00:38:33,000 SAM GREEN: Nē, nē. 737 00:38:33,000 --> 00:38:33,500 Control-- 738 00:38:33,500 --> 00:38:36,540 739 00:38:36,540 --> 00:38:38,140 >> Hugh Zabriskie: Ak, Control, ritiniet? 740 00:38:38,140 --> 00:38:38,780 Ak, Gotcha. 741 00:38:38,780 --> 00:38:41,480 Jā. 742 00:38:41,480 --> 00:38:42,240 Wow, nope, nope. 743 00:38:42,240 --> 00:38:42,740 LABI. 744 00:38:42,740 --> 00:38:46,090 Es ne darīt. 745 00:38:46,090 --> 00:38:48,300 >> Tātad yeah, šajā pirmajā sadaļa šeit, jūs redzat 746 00:38:48,300 --> 00:38:52,720 mēs radot visas šīs dažādās mezglu izrakstās no konteksta. 747 00:38:52,720 --> 00:38:54,980 Mēs esam tikai saliekot tos kopā otrajā daļā 748 00:38:54,980 --> 00:38:56,980 ar šo funkciju sauc Connect. 749 00:38:56,980 --> 00:38:58,830 Tas ir tiešām galvenais funkcija Web Audio. 750 00:38:58,830 --> 00:39:01,930 Tas tikai nozīmē, kad jūs esat darījuši kaut kas ar skaņu vienā mezglā, 751 00:39:01,930 --> 00:39:03,705 nodot to uz nākamo mezglu. 752 00:39:03,705 --> 00:39:05,830 Tāpēc mums ir avots, to savienojumu ar analizatoru, 753 00:39:05,830 --> 00:39:09,140 analizatora kaut ko dara ar to, tā iet uz izkropļojumiem, un tā tālāk, 754 00:39:09,140 --> 00:39:12,725 un uz galamērķa apakšā tieši šeit. 755 00:39:12,725 --> 00:39:13,225 Cool. 756 00:39:13,225 --> 00:39:14,640 Labi, tāpēc mēs turpinām pārvietojas on. 757 00:39:14,640 --> 00:39:17,180 >> Pipeline-- atkal, tie ir visbiežāk cauruļvadi, 758 00:39:17,180 --> 00:39:21,300 tāpēc mēs runājam par visām šīm lietām, piemēram, sagrozīšana, panoramēšana, visu šo stuff. 759 00:39:21,300 --> 00:39:24,280 Ja jūs patiešām interesē izmantošanā lietas Pro Tools, 760 00:39:24,280 --> 00:39:25,820 tie, iespējams, jūs interesē. 761 00:39:25,820 --> 00:39:27,740 Ja tā nav, varbūt jūs vienkārši vēlaties spēlēt skaņu, 762 00:39:27,740 --> 00:39:29,990 vai varbūt jūs vienkārši vēlaties, lai iestatīt skaļumu uz skaņu. 763 00:39:29,990 --> 00:39:35,270 Tie ir divi visbiežāk veida cauruļvadu audio ražošanā. 764 00:39:35,270 --> 00:39:38,640 >> Atkal, kā jūs varat ņemt to jo kā oscillator-- Tātad, pieņemsim 765 00:39:38,640 --> 00:39:42,460 darīt demo par ka tieši šeit. 766 00:39:42,460 --> 00:39:47,090 767 00:39:47,090 --> 00:39:52,225 Tātad mēs ejam, lai izveidotu vienkāršs audio konteksts šeit, 768 00:39:52,225 --> 00:39:54,350 un no tā mēs ejam lai radītu mūsu oscilatoru. 769 00:39:54,350 --> 00:39:58,620 Tātad tas ir, atkal, mēs esam tikai dodas uz zvanu Izveidot oscilatoru. 770 00:39:58,620 --> 00:40:07,030 Mēs ejam, lai uzstādītu biežumu ka 440 Hertz, ikviena mīļākie. 771 00:40:07,030 --> 00:40:13,290 Tad mēs savienot, ka ar mērķi, point-- kas ir valoda, tāpēc 772 00:40:13,290 --> 00:40:15,750 konteksts galamērķis. 773 00:40:15,750 --> 00:40:21,400 Visbeidzot, mēs tikai teikt, sākt nulli sekundes no tagad, un mēs esam skaņu? 774 00:40:21,400 --> 00:40:22,400 >> [Zvana] 775 00:40:22,400 --> 00:40:24,980 >> Hugh Zabriskie: Šeit mēs iet. 776 00:40:24,980 --> 00:40:25,940 Tas ir tikai sine wave. 777 00:40:25,940 --> 00:40:26,440 OK, atdzesē. 778 00:40:26,440 --> 00:40:28,274 Un tad mēs pārstāsim to. 779 00:40:28,274 --> 00:40:30,520 >> Mērķauditorija: Kur darīja ka atgriezeniskā saite nāk no? 780 00:40:30,520 --> 00:40:31,250 >> Hugh Zabriskie: atgriezeniskā saite? 781 00:40:31,250 --> 00:40:32,458 Ak, iespējams, mūsu mikrofoni. 782 00:40:32,458 --> 00:40:34,221 783 00:40:34,221 --> 00:40:35,470 Tātad yeah, tas ir, kā jūs to darīt. 784 00:40:35,470 --> 00:40:37,261 Un patiesībā, ja man bija tur tā darbojas, jūs 785 00:40:37,261 --> 00:40:39,540 varētu būt frekvence vērtība, jo tas darbojas, 786 00:40:39,540 --> 00:40:43,320 tā ka ir jautri lieta spēlēt apkārt. 787 00:40:43,320 --> 00:40:44,930 Cool. 788 00:40:44,930 --> 00:40:46,600 Tas vienmēr ir jauki viens prezentēt. 789 00:40:46,600 --> 00:40:48,792 >> SAM GREEN: mēs neesam domāt par to, vai mēs? 790 00:40:48,792 --> 00:40:50,500 Hugh Zabriskie: Jā, tas ir šķebinošs viens. 791 00:40:50,500 --> 00:40:53,249 Tātad, bufera loading-- es jums parādīt piemērs, ka pašās beigās. 792 00:40:53,249 --> 00:40:55,090 Tas ir iekraušanas MP3. 793 00:40:55,090 --> 00:40:58,880 Un mikrofons, jūs izmantot tikai funkciju sauc Navigator.getUserMedia () 794 00:40:58,880 --> 00:41:03,240 pieprasīt piekļuvi lietotāja mikrofons par šo informāciju. 795 00:41:03,240 --> 00:41:05,610 >> Lūk filtrēšana, es ņemšu tikai glabāt pārvietojas no tā. 796 00:41:05,610 --> 00:41:08,600 Tas ir diezgan augsts līmenis, bet filtri tikai ļauj jums 797 00:41:08,600 --> 00:41:16,154 >> [Skaņas] 798 00:41:16,154 --> 00:41:18,320 Filtrēšana ļauj jums radīt lietas, piemēram, rozā 799 00:41:18,320 --> 00:41:20,050 troksnis, brūns troksnis, baltā trokšņa. 800 00:41:20,050 --> 00:41:24,330 Ja jūs vēlaties, lai izveidotu tīru troksni, kas daži cilvēki mīlestība putru apmēram ar, 801 00:41:24,330 --> 00:41:27,490 Jūs varat izmantot Web Audio filtrēšana, lai to izdarītu. 802 00:41:27,490 --> 00:41:30,039 >> Audio Panning-- tik iedomāties ja jūs esat rakstiski spēli 803 00:41:30,039 --> 00:41:32,330 un jūs vēlaties skaņu izklausīties tas nāk, piemēram, 804 00:41:32,330 --> 00:41:36,090 šaušana pa ekrānu, jūs var izmantot panoramēšana par audio 805 00:41:36,090 --> 00:41:39,770 lai izveidotu šāda veida konusa, kas like-- tas ir diezgan MATHY, 806 00:41:39,770 --> 00:41:41,850 bet patiesībā tas ir patiešām cool, ja jums tas strādā, 807 00:41:41,850 --> 00:41:44,500 un tur ir dažas labas konsultācijas par to es varu nosūtīt jums. 808 00:41:44,500 --> 00:41:46,400 Būtībā, jūs varat veida no rada skaņu 809 00:41:46,400 --> 00:41:50,480 kaut kas notiek ar 3D veidā. 810 00:41:50,480 --> 00:41:57,350 Un, ja jums ir interese DJ, jūs varat sākt sajaukšanu un šķērsot izbalēšanu dziesmas. 811 00:41:57,350 --> 00:42:01,260 >> Tas ir tikai dažas ļoti vienkāršas kods, būtībā to, ko es darīju pirms tam. 812 00:42:01,260 --> 00:42:06,140 Tas nosaka skaļumu oscilatoru, tāpēc mēs veidojam mūsu oscilatoru 813 00:42:06,140 --> 00:42:07,380 kas rada vilnim. 814 00:42:07,380 --> 00:42:09,940 Mēs veidojam mūsu GainNode, kas mūsu frekvenci, 815 00:42:09,940 --> 00:42:14,170 un pēc tam pievienojiet oscilatoru ar GainNode, kas tad būtībā maina 816 00:42:14,170 --> 00:42:16,760 cik daudz signāls ir atļauts cauri. 817 00:42:16,760 --> 00:42:20,467 Bet tiešām, tas ir digitālais lieta, tāpēc tas ir vairāk just-- yeah. 818 00:42:20,467 --> 00:42:23,550 Tas nav tas, ko patiesībā notiek, bet tas, kas notiek reālajā dzīvē 819 00:42:23,550 --> 00:42:24,393 ar peļņu. 820 00:42:24,393 --> 00:42:27,258 >> Mērķauditorija: --quantization tilpuma parametru? 821 00:42:27,258 --> 00:42:28,174 Hugh Zabriskie: Sorry? 822 00:42:28,174 --> 00:42:30,360 Mērķauditorija: Vai tas ir kvantizēto tilpums parametrs? 823 00:42:30,360 --> 00:42:31,840 Hugh Zabriskie: Jā. 824 00:42:31,840 --> 00:42:34,620 Un tas ir viena lieta, es esmu patiešām deficītas par manā zināšanas, 825 00:42:34,620 --> 00:42:38,010 Kā iegūt darbu uz digitālo līmenī. 826 00:42:38,010 --> 00:42:40,140 Es zinu, ar faktisko signāli, tas būtībā 827 00:42:40,140 --> 00:42:45,120 kontrolētu, cik daudz jūs esat pastiprinot signālu. 828 00:42:45,120 --> 00:42:47,017 Tātad, jā. 829 00:42:47,017 --> 00:42:50,100 Es jums nosūtīsim vairāk informācijas par ka, jo es gribētu būt ziņkārīgs faktiski 830 00:42:50,100 --> 00:42:51,099 uzzināt vairāk par to. 831 00:42:51,099 --> 00:42:54,090 Bet būtībā parametrus ir, viens ir fold-- 832 00:42:54,090 --> 00:42:59,690 Jo skaļāka signal-- un nulle nav signāls, vai jūs nedzirdēsiet jebkuru skaņu. 833 00:42:59,690 --> 00:43:03,150 Mēs izlaist demo laiku, ka tāpēc tas būtībā tas, ko es darīju pirms tam. 834 00:43:03,150 --> 00:43:07,630 Un atkal, Context.Destination ir audio galamērķis mezglā. 835 00:43:07,630 --> 00:43:08,360 Awesome, OK. 836 00:43:08,360 --> 00:43:10,470 >> Tāpēc es esmu gatavojas darīt ātri divas demonstrācijas. 837 00:43:10,470 --> 00:43:11,760 Kā mums klājas laikā? 838 00:43:11,760 --> 00:43:12,640 >> SPEAKER 1: apmēram 10 minūtes. 839 00:43:12,640 --> 00:43:13,130 >> Hugh Zabriskie: 10 minūtes? 840 00:43:13,130 --> 00:43:13,630 Lieliski! 841 00:43:13,630 --> 00:43:14,320 Awesome. 842 00:43:14,320 --> 00:43:19,010 >> Tātad pirmais es esmu gatavojas do, to sauc My Favorite Song. 843 00:43:19,010 --> 00:43:22,410 Tātad tas ir tikai maz HTML JavaScript. 844 00:43:22,410 --> 00:43:25,510 Mēs ejam, lai ir divas pogas lapā spēlēt manu mīļāko dziesmu 845 00:43:25,510 --> 00:43:29,192 un pārtraukt manu mīļāko dziesmu. 846 00:43:29,192 --> 00:43:30,180 Es ņemšu mainīt. 847 00:43:30,180 --> 00:43:32,110 >> Mērķauditorija: Cover savu mikrofonu. 848 00:43:32,110 --> 00:43:33,430 >> Hugh Zabriskie: Jā. 849 00:43:33,430 --> 00:43:36,300 Un es esmu ievietots šeit skripts, kas basically-- 850 00:43:36,300 --> 00:43:38,520 un tas ir patiešām noderīga par iekraušanas MP3, 851 00:43:38,520 --> 00:43:41,820 tāpēc tas tikai padara iekraušanas MP3 ceļu ātrāk. 852 00:43:41,820 --> 00:43:44,180 Tas ir būtībā tikai iesaiņojums. 853 00:43:44,180 --> 00:43:48,737 Tas tikai padara procesu iekraušanas MP3 daudz ātrāk, 854 00:43:48,737 --> 00:43:51,570 pretējā gadījumā jūs izmantojat HTTP pieprasījumu, veida, piemēram, tas, ko mēs darām 855 00:43:51,570 --> 00:43:53,950 par pašreizējo gabals, kas ar serveri. 856 00:43:53,950 --> 00:43:55,950 Tas ir tiešām neglīts, jūs nevēlos to darīt. 857 00:43:55,950 --> 00:44:04,110 >> Tātad šis puisis, Boris MVU, rakstīja patiešām noderīgs maz instruments, ko sauc BufferLoader. 858 00:44:04,110 --> 00:44:08,780 Viss, kas Jums jādara, ir vienkārši nodot to uz konteksts, jūs iet to list-- 859 00:44:08,780 --> 00:44:11,327 vai, jā, tas ir saraksts JavaScript? 860 00:44:11,327 --> 00:44:12,160 SAM GREEN: Masīvs. 861 00:44:12,160 --> 00:44:14,201 Hugh Zabriskie: Ak, tas ir masīvs, tas ir labi. 862 00:44:14,201 --> 00:44:18,660 Tas ir masīvs ceļiem uz dažādiem failiem. 863 00:44:18,660 --> 00:44:21,990 Un tad jūs iet to funkcija. 864 00:44:21,990 --> 00:44:25,530 Tas ir atzvanīšanas mēs runājām par ar asinhrono iekraušanu. 865 00:44:25,530 --> 00:44:28,720 Tas sauks Kad faili piekrauts. 866 00:44:28,720 --> 00:44:33,780 Un tas funkciju, kas ieslēdzas, ja fails ir piekrauts ņem kā perimetru 867 00:44:33,780 --> 00:44:35,840 masīvs piekrauto buferiem. 868 00:44:35,840 --> 00:44:37,990 Tātad, kas notiek šeit. 869 00:44:37,990 --> 00:44:41,180 Būtībā, BufferList ir būs viens value-- 870 00:44:41,180 --> 00:44:46,380 vai tas būs masīvs garums viens, ka ir tajā indeksā 871 00:44:46,380 --> 00:44:51,320 nulles visu ielādes failu MP3. 872 00:44:51,320 --> 00:44:53,320 Tātad, ko es daru, kad es apdare iekraušana ir, es vienkārši 873 00:44:53,320 --> 00:44:57,430 izveidot bufera avotu, kas ir audio buferis avots mezglu. 874 00:44:57,430 --> 00:45:03,410 Nākamais solis ir I noslodze source.buffer kā pilna piekrauta buferis 875 00:45:03,410 --> 00:45:06,740 No BufferList-- tas ir daudz buffers-- 876 00:45:06,740 --> 00:45:10,255 un tad jūs savienot šo audio bufera uz galamērķi. 877 00:45:10,255 --> 00:45:12,380 Tātad, ko tā gatavojas darīt ir tikai vienkārši ielieciet MP3 878 00:45:12,380 --> 00:45:15,260 taisni cauri ar produkciju, un sākt to nekavējoties 879 00:45:15,260 --> 00:45:18,010 pēc iegūt šo aicinājumu. 880 00:45:18,010 --> 00:45:21,660 >> Atdzesē, tāpēc pieņemsim redzēt tas notiktu darbībā. 881 00:45:21,660 --> 00:45:24,490 My [dzirdams] šeit, redzēsim. 882 00:45:24,490 --> 00:45:26,430 Tāpēc es esmu tikai gatavojas sākt pamata serveri. 883 00:45:26,430 --> 00:45:28,660 Tas ir kaut kas, kas jums jādara, ja jūs esat 884 00:45:28,660 --> 00:45:32,490 padarot pieprasījumus iekraušanas failiem. 885 00:45:32,490 --> 00:45:34,140 Es esmu gatavojas sākt pamata serveri. 886 00:45:34,140 --> 00:45:38,200 Tas ir galvenokārt jūsu visu PSET tagad vienā rindā, 887 00:45:38,200 --> 00:45:43,930 bet tas ir tikai sākot serveris par ostas 80/80. 888 00:45:43,930 --> 00:45:47,300 Tātad mēs ejam nekā šeit, mēs gatavojas slodze 80/80, 889 00:45:47,300 --> 00:45:49,110 mēs gatavojamies iet uz mana mīļākā dziesma. 890 00:45:49,110 --> 00:45:51,660 Tātad, ja es hit "play my mīļākā dziesma "tieši tagad, 891 00:45:51,660 --> 00:45:53,964 tas notiek, lai ielādētu manu mīļākā dziesma un spēlēt it-- 892 00:45:53,964 --> 00:45:55,880 [MUSIC - The Eagles ", dzīve FAST  LANE "] 893 00:45:55,880 --> 00:46:00,490 --which notiek, "Life in Fast Lane "ar Eagles. 894 00:46:00,490 --> 00:46:06,346 Tagad, es varētu hit "pārtraukt manu mīļākā dziesma "un replay to. 895 00:46:06,346 --> 00:46:09,160 >> [MUSIC - The Eagles ", dzīve FAST  LANE "] 896 00:46:09,160 --> 00:46:18,340 >> Un, ja es iet pār mierināt, jo Es mēdzu globālu mainīgo nekā šeit 897 00:46:18,340 --> 00:46:23,390 sekot šīs vērtības, to faktiski tagad tiks atzīts konsole. 898 00:46:23,390 --> 00:46:25,160 Tātad tas auto-rada par mani. 899 00:46:25,160 --> 00:46:29,991 Tātad tas, kas spēlē tieši tagad, un es varu vienkārši piezvanīt source.stop () 900 00:46:29,991 --> 00:46:30,490 uz to. 901 00:46:30,490 --> 00:46:34,930 902 00:46:34,930 --> 00:46:35,860 Nu, jūs zināt, ko? 903 00:46:35,860 --> 00:46:39,760 Vienkārši, lai jūs puiši ir dzirdējuši song-- jūs varētu atpazīt šo dziesmu. 904 00:46:39,760 --> 00:46:41,801 >> [MUSIC - Rick Astley, "NEKAD gonna sniegt  TU AUGŠĀ"] 905 00:46:41,801 --> 00:46:42,299 906 00:46:42,299 --> 00:46:44,215 [MUSIC - The Eagles ", dzīve FAST  LANE "] 907 00:46:44,215 --> 00:46:46,195 Mēs esam tagad viss ir Rickrolled. 908 00:46:46,195 --> 00:46:50,155 OK, liels, pārvietojas on. 909 00:46:50,155 --> 00:46:51,160 Cool. 910 00:46:51,160 --> 00:46:54,554 Tātad šis ir būtībā piemērs tāpat kā jūs varētu ielādēt MP3 file-- 911 00:46:54,554 --> 00:46:56,470 [MUSIC - The Eagles ", dzīve FAST  LANE "] 912 00:46:56,470 --> 00:46:59,590 --and spēlēt to, un apstāties un sākt to. 913 00:46:59,590 --> 00:47:03,008 Es varētu darīt daudz vairāk [nedzirdama] 914 00:47:03,008 --> 00:47:07,570 >> Pēdējais es darīšu, ir, Es jums parādīs [nedzirdama]. 915 00:47:07,570 --> 00:47:18,070 >> [Mūzikas atskaņošanai] 916 00:47:18,070 --> 00:47:21,800 >> Tas ir tāpat, ogg.wave.mp3. 917 00:47:21,800 --> 00:47:26,450 Es domāju, ka, ja pareizi atceros, Es esmu uzskriet dažiem jautājumiem ar M4A, 918 00:47:26,450 --> 00:47:27,721 bet es neesmu pārliecināts par to. 919 00:47:27,721 --> 00:47:28,470 Es domāju, ka mp3.wave-- 920 00:47:28,470 --> 00:47:28,930 921 00:47:28,930 --> 00:47:30,971 >> [MUSIC - Rick Astley, "NEKAD gonna sniegt  TU AUGŠĀ"] 922 00:47:30,971 --> 00:47:35,930 923 00:47:35,930 --> 00:47:36,500 >> Labi, lieliski. 924 00:47:36,500 --> 00:47:37,625 Man nevajadzēja teikt, ka. 925 00:47:37,625 --> 00:47:40,570 Anyway, sveiki. 926 00:47:40,570 --> 00:47:43,430 927 00:47:43,430 --> 00:47:45,490 Tātad mums ir tas atvērts. 928 00:47:45,490 --> 00:47:52,320 Tāpēc tagad viss, ko es darīt, ir, es būtībā radīja pamata sintakse, lai radītu mūziku. 929 00:47:52,320 --> 00:47:57,610 Tātad, ja es kaut ko darīt, piemēram, pievienot G4 1. 2, ko tas nozīmē, ka, 930 00:47:57,610 --> 00:48:00,950 pievienot klavieres piezīmi, G4, kas ir ceturtais G 931 00:48:00,950 --> 00:48:02,680 up uz klavierēm no apakšas. 932 00:48:02,680 --> 00:48:05,930 Tātad šis ir sava veida MIDI runā, tāpēc tiem, kas ir mūzikas pamatā, 933 00:48:05,930 --> 00:48:07,860 tas ir tikai MIDI piezīmes. 934 00:48:07,860 --> 00:48:10,090 >> Mērķauditorija: Tas ir G Tuvo C, vai ne? 935 00:48:10,090 --> 00:48:11,840 >> Hugh Zabriskie: Šis ir G virs Tuvajiem C, tas ir labi. 936 00:48:11,840 --> 00:48:12,470 >> Mērķauditorija: Virs Middle C. 937 00:48:12,470 --> 00:48:13,345 >> Hugh Zabriskie: Jā. 938 00:48:13,345 --> 00:48:14,340 Patiesībā, jā. 939 00:48:14,340 --> 00:48:16,131 Es domāju, ka es faktiski veikti tas viens [nedzirdama] 940 00:48:16,131 --> 00:48:18,860 tā tas varētu būt oktāvu augstāks. 941 00:48:18,860 --> 00:48:20,070 Tātad, pieņemsim redzēt. 942 00:48:20,070 --> 00:48:21,152 Ja es hit Play-- 943 00:48:21,152 --> 00:48:22,110 [Atkārtojas PIANO PIEZĪME] 944 00:48:22,110 --> 00:48:23,200 --we're gatavojas dzirdēt, ka. 945 00:48:23,200 --> 00:48:25,700 Ideja ir tāda, ka tas darbojas tāpat kā komandrindas būtu, 946 00:48:25,700 --> 00:48:27,510 Tātad, ja es iet uz augšu un uz leju uz manu klaviatūru, jūs 947 00:48:27,510 --> 00:48:31,550 varat doties atpakaļ uz iepriekšējo komandas, kas ir diezgan noderīgs. 948 00:48:31,550 --> 00:48:35,136 Un zemāk ir mans saraksts dziesmas, kas ir visi darbojas uz cilpas. 949 00:48:35,136 --> 00:48:38,260 >> Mērķauditorija: Jums bija pieņemot, ka 88-taustiņu klaviatūru uz to, vai ne? 950 00:48:38,260 --> 00:48:41,051 >> Hugh Zabriskie: Jautājums bija, es esmu pieņemot, ka 88-taustiņu klaviatūru, 951 00:48:41,051 --> 00:48:41,990 un jā, es esmu. 952 00:48:41,990 --> 00:48:45,030 Ko es darīju ir I būtībā paņēma 88 paraugus 953 00:48:45,030 --> 00:48:46,970 no klavierēm, viena katrai piezīmi. 954 00:48:46,970 --> 00:48:49,180 Un tā katru reizi, kad dzirdēt piezīmi no brīža, 955 00:48:49,180 --> 00:48:57,550 kas ir faktiski cilpa, kas izskatās like-- tas kļūst spēlēja uz cilpas, 956 00:48:57,550 --> 00:49:00,120 tāpēc par katru piezīmi, tas darbojas. 957 00:49:00,120 --> 00:49:02,860 Kas notiek, ir, es izveidot buferi atkal, 958 00:49:02,860 --> 00:49:06,010 Es izveidot iegūt mezglu, lai iestatītu skaļumu. 959 00:49:06,010 --> 00:49:08,240 Tas tikai patiešām sarežģīts veids, kā pateikt I 960 00:49:08,240 --> 00:49:10,550 uzglabāt bufera kādā source.buffer. 961 00:49:10,550 --> 00:49:13,160 Es arī tā peļņu, es savienot to ar peļņu, 962 00:49:13,160 --> 00:49:15,576 pieaugums ir savienots ar produkciju, un tad es atskaņot to. 963 00:49:15,576 --> 00:49:20,735 Tātad, kas ir sava veida process ņemt in bufera avots. 964 00:49:20,735 --> 00:49:24,820 >> Mērķauditorija: Vai jūs faktiski pieņemt, ka sauss skaņu un padarīt to slapjš [dzirdams]? 965 00:49:24,820 --> 00:49:26,260 >> Hugh Zabriskie: Jūs varat, yeah. 966 00:49:26,260 --> 00:49:29,260 Tur ir atkārtoti vārds, tur ir kavēšanās, sagrozīšana. 967 00:49:29,260 --> 00:49:33,260 Jūs varat būtībā likt neko starp šajā sviestmaizi of-- labi, 968 00:49:33,260 --> 00:49:37,660 cauruļvads ir labāks metafora, bet jūs varat pievienot kaut ko, kas. 969 00:49:37,660 --> 00:49:38,200 Cool. 970 00:49:38,200 --> 00:49:40,280 >> Tāpēc es ņemšu pabeigt demo šeit, lai dotu jums sajūtu 971 00:49:40,280 --> 00:49:46,390 no tikai milzīgais skaits reižu tu var palaist šo funkciju visus uzreiz. 972 00:49:46,390 --> 00:49:49,280 Tāpēc es esmu gatavojas, lai novērstu to. 973 00:49:49,280 --> 00:49:59,110 Es esmu gatavojas izveidot ģenerators that-- būtībā kas does-- tas ir patiešām 974 00:49:59,110 --> 00:50:04,220 veida sarežģīta syntax-- bet tas ir gatavojas radīt piezīmes par lidot, 975 00:50:04,220 --> 00:50:06,601 un vienkārši sākt spēlēt viņiem tā izvērtē tos. 976 00:50:06,601 --> 00:50:07,392 [Iestarpinot PIANO] 977 00:50:07,392 --> 00:50:10,990 978 00:50:10,990 --> 00:50:12,817 >> Tātad, mēs varam tikai veikt nelielu mūziku šeit. 979 00:50:12,817 --> 00:50:13,608 [Iestarpinot PIANO] 980 00:50:13,608 --> 00:50:39,570 981 00:50:39,570 --> 00:50:41,470 >> Tātad, ko šī komanda ir, piemēram, ir 982 00:50:41,470 --> 00:50:46,910 tas aizņem šos trīs piezīmes par klavieres un tad liek tos uz B3. 983 00:50:46,910 --> 00:50:48,660 Šī sintakse varētu padarīt mazliet vairāk sajūtu 984 00:50:48,660 --> 00:50:50,590 tiem, kuriem ir mūzika fons šeit. 985 00:50:50,590 --> 00:50:55,180 986 00:50:55,180 --> 00:50:56,551 >> Es varu pievienot kick bungas. 987 00:50:56,551 --> 00:50:57,050 ES varu-- 988 00:50:57,050 --> 00:50:58,048 >> [Iestarpinot INSTRUMENTI] 989 00:50:58,048 --> 00:50:59,256 >> --just spēlēt aptuveni ar to. 990 00:50:59,256 --> 00:51:12,519 991 00:51:12,519 --> 00:51:13,474 >> Tātad jūs varat make-- 992 00:51:13,474 --> 00:51:14,515 [Iestarpinot INSTRUMENTI] 993 00:51:14,515 --> 00:51:15,513 Tas viens ir mazliet vairāk kaitinošas. 994 00:51:15,513 --> 00:51:16,554 [Iestarpinot INSTRUMENTI] 995 00:51:16,554 --> 00:51:26,491 996 00:51:26,491 --> 00:51:30,981 >> Tā, ka nejauši piebilst sausu zvārgulis par katru 16. piezīmi, ar 16% 997 00:51:30,981 --> 00:51:31,481 [Dzirdams]. 998 00:51:31,481 --> 00:51:32,522 >> [Iestarpinot INSTRUMENTI] 999 00:51:32,522 --> 00:51:40,962 1000 00:51:40,962 --> 00:51:50,400 >> Jā, tā kā šis works-- tas vienmēr ir 4: 4. 1001 00:51:50,400 --> 00:51:51,441 [Iestarpinot INSTRUMENTI] 1002 00:51:51,441 --> 00:52:06,910 1003 00:52:06,910 --> 00:52:10,902 >> Jā, tāpēc četriem ceturkšņiem, un 16/8. 1004 00:52:10,902 --> 00:52:14,851 1005 00:52:14,851 --> 00:52:15,892 [Iestarpinot INSTRUMENTI] 1006 00:52:15,892 --> 00:52:27,970 1007 00:52:27,970 --> 00:52:33,780 >> Tātad vidēji, jūs saņemsiet 60% no hits par 16 piezīmēm. 1008 00:52:33,780 --> 00:52:35,990 >> Anyways, tas bija tikai veida dižoties 1009 00:52:35,990 --> 00:52:39,780 dažas no lietām, jūs varētu veidot ar tīmekļa audio API. 1010 00:52:39,780 --> 00:52:43,840 Tas ir tiešām spēcīgs, tas ir ļoti ātri, un jūs varat darīt daudz labas lietas 1011 00:52:43,840 --> 00:52:44,340 ar to. 1012 00:52:44,340 --> 00:52:51,260 Tātad vēlreiz, visiem jūsu jautājumiem, e-pasts myself-- Hugh-- vai Sam, 1013 00:52:51,260 --> 00:52:55,869 un godīgi, Google ir ton labu resursu. 1014 00:52:55,869 --> 00:52:56,660 Visus pēdējie jautājumi? 1015 00:52:56,660 --> 00:52:57,970 Jā. 1016 00:52:57,970 --> 00:53:00,790 >> Mērķauditorija: Tātad jūs varat piekļūt iebūvēto mikrofonu. 1017 00:53:00,790 --> 00:53:03,089 Ko darīt, ja jūs vēlaties, lai izmantot labāku mikrofonu? 1018 00:53:03,089 --> 00:53:05,380 Hugh Zabriskie: Ja jūs vēlētos lietošanā labāku mikrofonu? 1019 00:53:05,380 --> 00:53:11,320 Tātad atkal, tā ir daļa no abstrakcija starp Chrome 1020 00:53:11,320 --> 00:53:12,950 un pārējā datorā. 1021 00:53:12,950 --> 00:53:18,950 Ja vien tas ir pieejams caur API, piemēram Web MIDI API, 1022 00:53:18,950 --> 00:53:22,030 jūs varētu, iespējams atrast dažas hacks, bet parasti nav tik iespējams. 1023 00:53:22,030 --> 00:53:25,300 >> SAM GREEN: Jūs varat also-- visi Chrome zina 1024 00:53:25,300 --> 00:53:28,820 ir tas, kas jūsu noklusējuma mikrofons ir, un tā piekļūst ka. 1025 00:53:28,820 --> 00:53:33,410 Tātad, ja jums bija mikrofons jūs varētu iestatīt kā datora noklusējuma mikrofonu, 1026 00:53:33,410 --> 00:53:35,990 jūs varētu tai piekļūt, ka veidā un tas būtu iespējams, strādā. 1027 00:53:35,990 --> 00:53:37,490 Hugh Zabriskie: Tas ir labs jautājums. 1028 00:53:37,490 --> 00:53:39,656 Es nekad neesmu mēģinājis, taču jūs varētu natūrā 1029 00:53:39,656 --> 00:53:45,700 of-- ja jūs novirzīt ievades valoda, jūs varētu to darīt, jā. 1030 00:53:45,700 --> 00:53:48,360 >> Visus pēdējie jautājumi? 1031 00:53:48,360 --> 00:53:49,340 Cool. 1032 00:53:49,340 --> 00:53:51,680 Nu paldies puiši tik daudz, lai skatītos. 1033 00:53:51,680 --> 00:53:52,199 Es esmu Hugh. 1034 00:53:52,199 --> 00:53:52,990 SAM GREEN: es esmu Sam. 1035 00:53:52,990 --> 00:53:55,410 Hugh Zabriskie: Un tas ir CS50. 1036 00:53:55,410 --> 00:53:56,767