1 00:00:00,000 --> 00:00:05,900 2 00:00:05,900 --> 00:00:07,170 >> SAM GREEN: Hi, hər kəs. 3 00:00:07,170 --> 00:00:08,640 Bizim seminarda xoş gəlmisiniz. 4 00:00:08,640 --> 00:00:10,009 My name Sam edir. 5 00:00:10,009 --> 00:00:11,050 HUGH Zabriskie: Mən Hugh edirəm. 6 00:00:11,050 --> 00:00:17,420 SAM GREEN: Və biz bu gün danışmaq olacaq JavaScript və Web Audio API haqqında. 7 00:00:17,420 --> 00:00:21,180 Yalnız həyata başlamaq üçün, bu bir kontur edir Seminarda üçün gündəmə. 8 00:00:21,180 --> 00:00:25,350 Biz söhbət başlamaq olacaq niyə Web maraqlı olmalıdır 9 00:00:25,350 --> 00:00:30,130 Audio API, niyə JavaScript edir Bunun üçün lazım olan dili, 10 00:00:30,130 --> 00:00:32,619 və sonra JavaScript haqqında danışmaq kimi belə essentials-- 11 00:00:32,619 --> 00:00:34,800 bəzi vasitəsilə gəzmək dil əsasları, 12 00:00:34,800 --> 00:00:37,290 və sonra haqqında danışmaq yüksək səviyyədə audio API. 13 00:00:37,290 --> 00:00:41,140 Sonra, Hugh bəzi danışacaqlar audio istehsal mərhələləri 14 00:00:41,140 --> 00:00:45,509 və sonra bu zəhmli sequencer demo Layihə o inşa və kodu göstərir. 15 00:00:45,509 --> 00:00:48,050 Və sonra, biz üçün vaxt lazımdır insanlar üçün sonunda suallar 16 00:00:48,050 --> 00:00:49,593 burada yaşayan. 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 Mən geri olacaq. 21 00:00:52,170 --> 00:00:54,960 >> SAM GREEN: Belə ki, ilk şey. 22 00:00:54,960 --> 00:00:57,840 Böyük şeyi biri So Web Audio API haqqında 23 00:00:57,840 --> 00:01:00,480 tələb olunan heç bir set up var ki. 24 00:01:00,480 --> 00:01:04,230 Bu daxili gəlir ən müasir brauzerlərdə, 25 00:01:04,230 --> 00:01:08,630 Chrome, Edge, bütövlükdə, o cümlədən others-- bütün olanları dəstə 26 00:01:08,630 --> 00:01:12,650 ki, böyük hissəsi insanlar bu gün istifadə olunur. 27 00:01:12,650 --> 00:01:14,807 Belə ki, heç orada müəyyən oldu kənara yalnız əldə 28 00:01:14,807 --> 00:01:16,890 bir web server üçün gedir Siz iş başlamaq üçün 29 00:01:16,890 --> 00:01:18,420 böyük layihə üzrə. 30 00:01:18,420 --> 00:01:21,500 31 00:01:21,500 --> 00:01:24,190 >> Biz olduqca gəlir ağır hesab ki, 32 00:01:24,190 --> 00:01:26,530 üçün Chrome istifadə JavaScript web inkişaf, 33 00:01:26,530 --> 00:01:30,260 yalnız onun geliştirici çünki tools həqiqətən güclüdür. 34 00:01:30,260 --> 00:01:33,220 Biz demək yalnız nə bir nümunə kimi deyərək JavaScript açmaq 35 00:01:33,220 --> 00:01:38,600 Siz Chrome getmək əgər console-- və hər hansı bir web page baxmaq, 36 00:01:38,600 --> 00:01:43,897 və basın tərk Sonra Element Inspect, və 37 00:01:43,897 --> 00:01:46,730 Bu kiçik açılan getmək burada və Console basın 38 00:01:46,730 --> 00:01:50,660 Siz bir görünür açılır görürsünüz bir skript istemi kimi çox ki, 39 00:01:50,660 --> 00:01:53,720 Mac, və ya ID bilər. 40 00:01:53,720 --> 00:01:59,260 Yalnız kimi və biz növü, Clear kimi, burada əmrləri 41 00:01:59,260 --> 00:02:01,350 və bu kimi digər əmrləri. 42 00:02:01,350 --> 00:02:04,267 Biz, dəyişənlər yaratmaq bilər biz JavaScript sonra görəcəksiniz. 43 00:02:04,267 --> 00:02:07,100 Və belə bir şey biz nə edə bilər JavaScript, biz konsol ilə edə bilərsiniz 44 00:02:07,100 --> 00:02:11,430 ki, bir super lazımlı bir yoldur API ilə ətrafında oynayan başlamaq 45 00:02:11,430 --> 00:02:15,760 və rahat əldə Hüququ yarasa off JavaScript. 46 00:02:15,760 --> 00:02:18,290 No set up tələb, həqiqətən gözəldir. 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 >> Belə ki, yalnız bir şey daha əlavə edin. 51 00:02:24,780 --> 00:02:27,780 Əgər hər hansı bir var Suallar , burada deyil yaşayan bir çox 52 00:02:27,780 --> 00:02:31,232 us-- bu e-poçt çekinmeyin Bizim e-poçt ünvanlarını var. 53 00:02:31,232 --> 00:02:33,190 Əgər suallarınız varsa Bizə soruşmaq istəmirəm, 54 00:02:33,190 --> 00:02:36,160 kimi, oh mən səhv var mənim kodu, və ya bir şey 55 00:02:36,160 --> 00:02:39,270 ki, bir az daha xüsusi var bəlkə ilk Google. 56 00:02:39,270 --> 00:02:42,340 Böyük ehtiyatları var Orada Web Audio API haqqında. 57 00:02:42,340 --> 00:02:44,089 Bu, həqiqətən də var sənədləşdirilmiş və olan oldu 58 00:02:44,089 --> 00:02:47,194 insanların bir ton istifadə ədalətli sənaye və insanlar 59 00:02:47,194 --> 00:02:48,610 özləri üçün fun stuff bina. 60 00:02:48,610 --> 00:02:51,306 Belə ki, bir çox olmalıdır Orada resurslarının. 61 00:02:51,306 --> 00:02:53,040 Awesome. 62 00:02:53,040 --> 00:02:56,100 >> Cool, belə ki, niyə Web Audio API? 63 00:02:56,100 --> 00:02:59,840 Bu diaqram bir az yolu bir təkamül 64 00:02:59,840 --> 00:03:04,100 web səs zamanla artmışdır. 65 00:03:04,100 --> 00:03:13,080 Bgsound orijinal HTML tag kimi idi Internet Explorer dəstəkləmək üçün istifadə edir. 66 00:03:13,080 --> 00:03:16,790 Bu, yalnız olduqca əsas səslər üçün icazə funksionallığı, çox möhkəm idi 67 00:03:16,790 --> 00:03:19,380 Siz edə bilmədim mürəkkəb sequencing, 68 00:03:19,380 --> 00:03:21,890 səs başladığı və ya nəzarət və çox sağlam dayandırdı. 69 00:03:21,890 --> 00:03:23,930 Belə ki, xüsusilə deyil inkişaf. 70 00:03:23,930 --> 00:03:27,470 Sonra sonra, Flash , along-- olan gəldi 71 00:03:27,470 --> 00:03:31,712 Mən sizə uşaqlar bütün tanış əmin deyiləm Flash-- bəlkə bu işləri necə ilə, 72 00:03:31,712 --> 00:03:32,920 lakin əlbəttə onu gördüm. 73 00:03:32,920 --> 00:03:35,586 Siz Flash yeniləmə var Plug-in, məhsullarının bütün bu cür, 74 00:03:35,586 --> 00:03:40,110 və əlbəttə ki, çeşidini genişləndirib funksionallığı mövcud idi. 75 00:03:40,110 --> 00:03:45,370 Lakin istifadəçi edilməsi yüklemek bir plug-in mütləq deyil 76 00:03:45,370 --> 00:03:48,480 o cümlədən Flash bir günah Sizin tətbiqi, sağ? 77 00:03:48,480 --> 00:03:52,410 Sonra Çünki asılı deyilik istifadəçi gedir və bu plug-in tapmaq, 78 00:03:52,410 --> 00:03:54,660 və yəqin ki, çıxdı olunur bu əlavə addım off 79 00:03:54,660 --> 00:03:56,640 Onlar sizin app istifadə etmək lazımdır. 80 00:03:56,640 --> 00:04:01,270 Və sonra bir yeniləmə ola bilər ki, bütün proqram qırmaq lazımdır, 81 00:04:01,270 --> 00:04:03,880 və bir kabus olan qədər başa çox geliştirici üçün. 82 00:04:03,880 --> 00:04:06,230 Belə ki, bir barrikada idi. 83 00:04:06,230 --> 00:04:10,480 >> Və o, birlikdə gəldi HTML audio tag olan 84 00:04:10,480 --> 00:04:16,579 daha müasir dilidir HTML bir xüsusiyyət olan əlbəttə ki, bir çox heyəti üçün icazə, 85 00:04:16,579 --> 00:04:20,050 hətta şeyi edə bilər bir az orada məhdud idi 86 00:04:20,050 --> 00:04:22,730 şeyi nəticəsində ki, HTML qadir idi. 87 00:04:22,730 --> 00:04:26,060 Belə ki, JavaScript API, Web Audio API, 88 00:04:26,060 --> 00:04:29,290 standart oldu brauzerlərdə arasında təcrübə, 89 00:04:29,290 --> 00:04:32,490 ki, həqiqətən dəsti genişləndirmişdir developers üçün imkanlar 90 00:04:32,490 --> 00:04:36,590 həqiqətən binaya almaq web cool stuff. 91 00:04:36,590 --> 00:04:39,220 Uzun müddət var idi olmuşdur həqiqətən güclü alətləri 92 00:04:39,220 --> 00:04:44,360 doğma audio applications üçün, hər kəs GarageBand bilir like--, 93 00:04:44,360 --> 00:04:48,360 və sonra açıq-aydın daha çox var professional audio mixing applications, 94 00:04:48,360 --> 00:04:49,640 və stuff ki cür. 95 00:04:49,640 --> 00:04:52,690 Amma yox idi bir həqiqətən yaxşı bulud deyil 96 00:04:52,690 --> 00:04:55,811 Cloud, evet, hərhalda Bulud web-based platform 97 00:04:55,811 --> 00:04:58,310 ki, developers imkan verir insanlar üçün applications yaratmaq 98 00:04:58,310 --> 00:05:00,570 audio mixing etmək. 99 00:05:00,570 --> 00:05:03,960 O sizə göstərəcək kimi sonra, Web Audio API 100 00:05:03,960 --> 00:05:07,470 həqiqətən güclü imkan verir stuff, həqiqətən sadəcə baş 101 00:05:07,470 --> 00:05:09,597 olan olduqca sərin. 102 00:05:09,597 --> 00:05:12,680 Belə ki, siz nə üçün təlimat var Seminarın qalan etsinlər, 103 00:05:12,680 --> 00:05:14,350 əsasən. 104 00:05:14,350 --> 00:05:17,880 >> Və indi mən haqqında danışmaq gedirəm Bəzi JavaScript yalnız əsas elementləri 105 00:05:17,880 --> 00:05:20,240 dil, belə ki, biz eyni səhifə ola bilər 106 00:05:20,240 --> 00:05:22,470 Biz haqqında danışmaq zaman API bir az sonra. 107 00:05:22,470 --> 00:05:23,260 Cool. 108 00:05:23,260 --> 00:05:26,192 >> Belə ki, bu bir xülasə edir. 109 00:05:26,192 --> 00:05:27,150 Mən burada idi unuttum. 110 00:05:27,150 --> 00:05:27,510 Bəli. 111 00:05:27,510 --> 00:05:27,870 >> HUGH Zabriskie: Burada iki slaydlar var. 112 00:05:27,870 --> 00:05:30,245 >> SAM GREEN: Bu xülasə edir məhdudiyyətlər bəzi 113 00:05:30,245 --> 00:05:35,220 digər məcburi, köhnə üsulları. 114 00:05:35,220 --> 00:05:37,828 Və sonra, indi biz bu şeylər var. 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 >> Belə ki, JavaScript essentials. 118 00:05:43,200 --> 00:05:47,230 Ilk ilk şey var bir olduqca əhəmiyyətli fərq 119 00:05:47,230 --> 00:05:49,940 JavaScript qarşı bir şəkildə C kimi dil, 120 00:05:49,940 --> 00:05:52,050 ki, dəyişənlərin yaradılmışdır. 121 00:05:52,050 --> 00:05:55,634 C Beləliklə, biz olan üçün istifadə etdiyiniz Bizim dəyişənlərin yazın, sağ? 122 00:05:55,634 --> 00:05:57,800 Mən kimi növü demək deyil onları yazın, mən növü demək 123 00:05:57,800 --> 00:06:01,900 kimi onlara tipli mənası təyin kimi, bir int bir float, bir char. 124 00:06:01,900 --> 00:06:05,210 C, biz, həqiqətən, üçün istifadə edilmişdir bir dəyişən yaratmaq üçün olan 125 00:06:05,210 --> 00:06:09,690 və sonra ki növü qalmaq ki, dəyişən istifadə bütün vaxt. 126 00:06:09,690 --> 00:06:13,990 Və mütləq pis deyil lakin istifadə etmək yəqin ki, çətindir. 127 00:06:13,990 --> 00:06:16,190 Cool xüsusiyyətlərindən biri JavaScript edir 128 00:06:16,190 --> 00:06:19,740 dəyişənlər deyirlər nə var ki, "Dinamik tipli" olan 129 00:06:19,740 --> 00:06:22,500 Mən yarada o deməkdir ki, ki, sintaksis ilə dəyişən, 130 00:06:22,500 --> 00:06:25,800 varX məsələn, 5 bərabərdir. 131 00:06:25,800 --> 00:06:27,790 Bu ilk yaradır tam dəyişən 132 00:06:27,790 --> 00:06:29,870 Sağ altında başlıq somewhere-- amma 133 00:06:29,870 --> 00:06:33,040 ki, dəyişən dəyişə bilərsiniz simli müraciət 134 00:06:33,040 --> 00:06:35,820 kimi bir şey etmədən yeni bir dəyişən yaratmaq. 135 00:06:35,820 --> 00:06:37,880 Mən narahat ehtiyac yoxdur növü dəyişdirilməsi haqqında. 136 00:06:37,880 --> 00:06:45,440 JavaScript ki növü var bilir dəyişdi, və dinamik olur. 137 00:06:45,440 --> 00:06:48,510 >> Belə ki, fayda var və ki, çatışmazlıqlar, 138 00:06:48,510 --> 00:06:51,250 işləmiş kimi hər kəs Bir müddət JavaScript bilirik bilər. 139 00:06:51,250 --> 00:06:53,600 Dəfə zaman var Siz təsadüfən bilər 140 00:06:53,600 --> 00:06:57,720 dəyişən növü dəyişdirmək və ki növü dəyişən idarə, 141 00:06:57,720 --> 00:07:01,120 və sonra JavaScript crash-- və ya istisna edə bilər 142 00:07:01,120 --> 00:07:06,070 Siz lazımdır, çünki, atılan yanlış növü bir növü gözləmək zaman. 143 00:07:06,070 --> 00:07:07,040 Cool. 144 00:07:07,040 --> 00:07:11,470 >> Belə ki, scoping-- əgər kimi biz Əlbəttə erkən həftə xatırlayıram, 145 00:07:11,470 --> 00:07:15,420 necə görünən dəyişən aiddir və kodu nə sahəsində. 146 00:07:15,420 --> 00:07:18,400 Ki, bütün çox oxşar görünür Bu C. görünür yolu 147 00:07:18,400 --> 00:07:24,755 Belə ki, dəyişənlərin ümumiyyətlə scoped olunur funksiyası ərzində qıvrım aşırma ərzində 148 00:07:24,755 --> 00:07:27,005 və sonra da var qlobal-Scoped dəyişənlərin ki, 149 00:07:27,005 --> 00:07:29,171 Bir dəyişən yazmaq əgər are-- bir funksiyası xaricində, 150 00:07:29,171 --> 00:07:31,790 Bu bütün mətn görünür. 151 00:07:31,790 --> 00:07:35,840 >> Arasında bir fərq Xüsusilə JavaScript və C, 152 00:07:35,840 --> 00:07:40,280 Bir qlobal elan əgər ki, mətn faylı dəyişən hər hansı 153 00:07:40,280 --> 00:07:43,324 hər hansı bir funksiyası görünən mətn fayl ərzində. 154 00:07:43,324 --> 00:07:44,240 Bu doğru, düzgün deyil? 155 00:07:44,240 --> 00:07:46,330 >> HUGH Zabriskie: Yep. 156 00:07:46,330 --> 00:07:49,120 >> SAM GREEN: Belə ki, bir az var C müqayisədə funky az, 157 00:07:49,120 --> 00:07:52,660 biz həmişə var idi harada bizim yerlərdə yuxarıda dəyişən anlayışlar 158 00:07:52,660 --> 00:07:53,770 onlar istifadə edilmişdir. 159 00:07:53,770 --> 00:07:57,957 Ki, icra etdiyi bir qayda deyil artıq, belə ki, bir az fərqli. 160 00:07:57,957 --> 00:08:00,540 Və yenə yalnız reemphasize üçün, yerli dəyişənlərin qarşı qlobal 161 00:08:00,540 --> 00:08:03,457 C. çox oxşar Siz ola bilər Eyni adı ilə iki dəyişənlər, 162 00:08:03,457 --> 00:08:06,540 və onların adları biri kölgə edilə var yerli dəyişən ilə onlardan biri varsa 163 00:08:06,540 --> 00:08:07,546 qlobal idi. 164 00:08:07,546 --> 00:08:09,420 Belə ki, oxşar cür problemlər bəzi ki, 165 00:08:09,420 --> 00:08:11,920 bəzi daxil ola bilər Sizin problem bu günə qədər müəyyən edir. 166 00:08:11,920 --> 00:08:14,450 Cool, belə ki, dəyişənlərin var. 167 00:08:14,450 --> 00:08:20,310 >> Control axını kimi, yəni if-else-- məntiqi stuff-- və loops. 168 00:08:20,310 --> 00:08:24,510 Belə ki, başlamaq üçün, bu nə if-else şərhlərdə JavaScript kimi görünür. 169 00:08:24,510 --> 00:08:29,750 müxtəlif şeyi yerləşdirilməsi xətləri üzrə əhəmiyyətli deyil. 170 00:08:29,750 --> 00:08:34,409 Bu yalnız konvensiyaların biridir Yolumuz strukturu kodu. 171 00:08:34,409 --> 00:08:38,634 Just C kimi, biz bir var Bir mötərizə şərhdə ", əgər". 172 00:08:38,634 --> 00:08:40,840 173 00:08:40,840 --> 00:08:42,090 Mən bunu demək nə deyil. 174 00:08:42,090 --> 00:08:44,860 175 00:08:44,860 --> 00:08:45,550 Mən bir daha bunu. 176 00:08:45,550 --> 00:08:46,841 >> HUGH Zabriskie: çıxmaq çalışırsınız? 177 00:08:46,841 --> 00:08:49,770 SAM GREEN: Xeyr, mən yalnız zoom üçün çalışırıq. 178 00:08:49,770 --> 00:08:50,660 Fərqi yoxdur. 179 00:08:50,660 --> 00:08:54,730 180 00:08:54,730 --> 00:08:59,370 >> Belə ki, biz bir "əgər" bəyanat və bunun daxilində vəziyyət var 181 00:08:59,370 --> 00:09:03,130 ki, doğru və ya yalan üçün qiymətləndirir və ya müəyyən 182 00:09:03,130 --> 00:09:04,510 biz kodu ki, blok daxil edin. 183 00:09:04,510 --> 00:09:09,860 Və beləcə, biz bir başqa əgər, və biz C. istifadə etdiyiniz kimi bir başqa, 184 00:09:09,860 --> 00:09:14,010 >> Siz həmçinin olduqca rahat olmalıdır sağ loops ilə yarasa off, 185 00:09:14,010 --> 00:09:16,440 onlar da baxmaq, çünki C kimi bir çox görünür. 186 00:09:16,440 --> 00:09:19,600 Amma siz yenə qeyd ki, lazımdır, biz əvəzinə initializations int ki, var, 187 00:09:19,600 --> 00:09:22,570 biz var initializations var. 188 00:09:22,570 --> 00:09:24,650 Mən var danışarlar etmək üçün diqqətli olmaq 189 00:09:24,650 --> 00:09:28,460 Siz dəyəri dəyişdirmək deyil I int bir simli, 190 00:09:28,460 --> 00:09:31,780 Məsələn, çünki olacaq qəribə davranış səbəb deyil bilər 191 00:09:31,780 --> 00:09:32,280 gözləyirik. 192 00:09:32,280 --> 00:09:35,750 Amma bu baxmaq lazımdır olduqca tanış, həm də. 193 00:09:35,750 --> 00:09:39,460 >> Hər şeyi başlamaq harada bu belədir JavaScript bir az dəli almaq 194 00:09:39,460 --> 00:09:44,920 kimsə üçün olan bir doğru gedir C. fon funksiyaları var 195 00:09:44,920 --> 00:09:48,070 JavaScript, bir yol var görünür ki, bir funksiyası elan 196 00:09:48,070 --> 00:09:50,361 C oxşar sort və sonra başqa bir var ki, 197 00:09:50,361 --> 00:09:52,450 cür fərqli görünür. 198 00:09:52,450 --> 00:09:54,930 >> ilk versiyası, biz burada görə bilərsiniz ki, 199 00:09:54,930 --> 00:09:59,260 , burada cür C-kimi biz bu bir funksiyası var, demək 200 00:09:59,260 --> 00:10:01,490 bir ad vermək vermək dəlilləri sayı 201 00:10:01,490 --> 00:10:05,150 funksiyası və sonra məzmunu bu qıvrım aşırma daxilində gedin. 202 00:10:05,150 --> 00:10:08,850 Biz nümunə görəcəksiniz yalnız ikinci dəlilləri. 203 00:10:08,850 --> 00:10:13,420 >> Növbəti xəttində Halbuki, biz oh, bax, Burada adlı dəyişən "myFunction," var 204 00:10:13,420 --> 00:10:17,546 və biz bu üçün bərabər generic şey edir funksiyası ki, 205 00:10:17,546 --> 00:10:19,170 bir şey gedən görünmür. 206 00:10:19,170 --> 00:10:22,780 207 00:10:22,780 --> 00:10:26,080 müxtəlif səbəb daha C ki, JavaScript 208 00:10:26,080 --> 00:10:30,040 funksional dil deyirlər nə, və ya deməkdir funksional elementlər vardır 209 00:10:30,040 --> 00:10:33,510 funksiyaları həqiqətən dəyərlər var ki,. 210 00:10:33,510 --> 00:10:39,520 Və biz müəyyən edə bilərsiniz o deməkdir ki, dəyişən bir funksiyası bərabər 211 00:10:39,520 --> 00:10:43,210 və sonra funksiyası hərəkət ətrafında bir arqument kimi keçir, 212 00:10:43,210 --> 00:10:46,550 məhsullarının bütün növ etmək funksiyaları ilə kimi. 213 00:10:46,550 --> 00:10:49,682 >> Bir başqa şey note-- üçün funksiyaları yazılır 214 00:10:49,682 --> 00:10:51,140 dəlilləri bir sıra ilə. 215 00:10:51,140 --> 00:10:54,056 Biz funksiyası nümunə görəcəksiniz növbəti slayd bir arqumenti ilə. 216 00:10:54,056 --> 00:10:56,720 Amma JavaScript olmayacaq Siz cəhd əgər fəğan 217 00:10:56,720 --> 00:10:59,330 ilə funksiyadan istifadə etmək dəlilləri səhv nömrəsi. 218 00:10:59,330 --> 00:11:05,310 Bu, yalnız etmək üçün əlindən gələni edəcəyik Siz keçmək əgər o deməkdir ki, nə, 219 00:11:05,310 --> 00:11:09,410 Bir gözləyir bir funksiyası zəng heç bir dəlil, bütün dəlil ki, 220 00:11:09,410 --> 00:11:13,990 onun gələni edəcəyik ki, baş verəcək cəhd və kodu yerinə, 221 00:11:13,990 --> 00:11:16,541 və nəticədə çalışır əgər İstisna və ya bir səhv daxil, 222 00:11:16,541 --> 00:11:19,790 ki, istisna atmaq və yalnız saxlamaq lazımdır going-- yalnız yollarından biri olan 223 00:11:19,790 --> 00:11:21,070 JavaScript işləyir. 224 00:11:21,070 --> 00:11:21,781 Bəli. 225 00:11:21,781 --> 00:11:24,207 >> Auditoriya: Nə olur çox dəlilləri var? 226 00:11:24,207 --> 00:11:26,040 SAM GREEN: Belə ki, sual nə olar, oldu 227 00:11:26,040 --> 00:11:27,380 çox arqumentlər var, əgər? 228 00:11:27,380 --> 00:11:29,171 Və cavab ki, JavaScript yalnız olacaq 229 00:11:29,171 --> 00:11:32,120 olanları görməməzlikdən gözlədiyini olanları sonra. 230 00:11:32,120 --> 00:11:36,420 Bu funksiyanı yerinə çalışacağıq yalnız ilk iki sanki zəng. 231 00:11:36,420 --> 00:11:37,075 Sağ? 232 00:11:37,075 --> 00:11:37,700 >> HUGH Zabriskie: Bu Bəli, doğru. 233 00:11:37,700 --> 00:11:39,449 Eynilə, əgər var çox az dəlillər var, 234 00:11:39,449 --> 00:11:42,640 yalnız cür bütün null verir arqumentlər hər hansı bir dəyərlər yoxdur 235 00:11:42,640 --> 00:11:43,660 üçün. 236 00:11:43,660 --> 00:11:45,810 >> SAM GREEN: can həqiqətən, lazımlı ola əgər 237 00:11:45,810 --> 00:11:49,060 bir funksiyası yazmaq istəyirəm ki, dəyişən sıra arqumentlər edir. 238 00:11:49,060 --> 00:11:55,830 Siz default dəyərlər bilərsiniz funksiyası müəyyən 239 00:11:55,830 --> 00:11:59,060 və bu fakt iqnor edə bilər giriş yoxdur. 240 00:11:59,060 --> 00:12:01,584 241 00:12:01,584 --> 00:12:04,000 Mən bir az danışmaq istəyirəm Bu son güllə haqqında daha çox 242 00:12:04,000 --> 00:12:05,541 funksiyaları point, dəyərlərdir. 243 00:12:05,541 --> 00:12:07,930 244 00:12:07,930 --> 00:12:11,010 Bu bir nümunəsidir bir az mind-əsən 245 00:12:11,010 --> 00:12:14,880 Yalnız oxumaq və düşünmürəm ikinci neler haqqında. 246 00:12:14,880 --> 00:12:17,910 Belə ki, yalnız baxaq Burada ilk line. 247 00:12:17,910 --> 00:12:24,360 Biz deyirik ki, bu dəyişən, F1 var Bu şey yoxdur bir funksiyası var. 248 00:12:24,360 --> 00:12:28,535 Və funksiyası məzmunu ('salam') console.log olunur. 249 00:12:28,535 --> 00:12:32,220 Siz console.log hesab edə bilər Printf JavaScript bərabərdir. 250 00:12:32,220 --> 00:12:35,510 Belə ki, nə olacaq, əgər biz bizim browser bu kodu run, 251 00:12:35,510 --> 00:12:37,530 Bu bir string çap edəcəyik. 252 00:12:37,530 --> 00:12:39,342 Hesab edirəm ki, nümayiş edə bilər. 253 00:12:39,342 --> 00:12:42,300 Auditoriya: Giriş, baxmayaraq ki, ki, yoxdur Bu yerdə qeyd olunur deməkdir? 254 00:12:42,300 --> 00:12:42,550 SAM GREEN: Bəli. 255 00:12:42,550 --> 00:12:44,216 Belə ki, nə olacaq nə sizə göstərmək lazımdır. 256 00:12:44,216 --> 00:12:48,085 Belə ki, sual nə deməkdir log ki, idi? 257 00:12:48,085 --> 00:12:51,262 >> HUGH Zabriskie: Belə console.log C. üçün printf kimi 258 00:12:51,262 --> 00:12:52,970 SAM GREEN: Belə console.log , printf kimi 259 00:12:52,970 --> 00:12:59,240 mən ('salam') bu console.log varsa, Mən zəng ki, string "salam" 260 00:12:59,240 --> 00:13:00,730 konsol çap olur. 261 00:13:00,730 --> 00:13:03,340 Bu konsol edir. 262 00:13:03,340 --> 00:13:05,930 Bu, yalnız printf, kimi Bu standart out görüntüler. 263 00:13:05,930 --> 00:13:09,050 264 00:13:09,050 --> 00:13:11,230 Və biz bir dəqiqə görürsünüz, lakin bu, həqiqətən, 265 00:13:11,230 --> 00:13:16,529 console obyekt toxunaraq, ki, obyekt bir üsul zəng. 266 00:13:16,529 --> 00:13:18,320 Daha mənada etmək lazımdır bir dəqiqədə biz 267 00:13:18,320 --> 00:13:20,660 söhbət almaq JavaScript obyektləri, 268 00:13:20,660 --> 00:13:22,509 lakin mən yalnız qeyd düşündüm. 269 00:13:22,509 --> 00:13:24,300 HUGH Zabriskie: Biz C üçün istifadə right-- 270 00:13:24,300 --> 00:13:27,580 biz adətən böyük proqram yazmaq əsas şey etmək. 271 00:13:27,580 --> 00:13:30,700 Amma nə JavaScript sərin var siz tərcüməçinin bu cür ki, 272 00:13:30,700 --> 00:13:33,620 çalışır real vaxt, belə ki xətti ilə yalnız xətt çəkir, 273 00:13:33,620 --> 00:13:35,320 yalnız yerində ki, şərh edə bilər. 274 00:13:35,320 --> 00:13:37,403 Və bu tutar əvvəl run şeylər, 275 00:13:37,403 --> 00:13:41,620 belə ki, olduqca faydalı aracıdır , console.log, və ya konsol istifadə 276 00:13:41,620 --> 00:13:46,870 ümumiyyətlə, yalnız oynayan üçün ətrafında JavaScript. 277 00:13:46,870 --> 00:13:51,420 >> SAM GREEN: Belə ki, bu geri gedir kod ikinci xətt misal 278 00:13:51,420 --> 00:13:55,320 burada mənim rəhbəri olduqca mind-boggling edir. 279 00:13:55,320 --> 00:13:59,790 ilk dəfə bu oxumaq, bu kimi, nə olub idi? 280 00:13:59,790 --> 00:14:04,580 Belə ki, nə bu, funksiyası bəyannamə deyir 281 00:14:04,580 --> 00:14:10,170 Mən bir funksiyası adlanır F2 var ki, f bir arqument gözləyirik ki, 282 00:14:10,170 --> 00:14:12,990 və sonra bu çağırır funksiyası, f, olan 283 00:14:12,990 --> 00:14:17,652 bir arqument kimi keçildi heç bir dəlilləri özü ilə. 284 00:14:17,652 --> 00:14:19,110 Belə ki, confusing ola bilər. 285 00:14:19,110 --> 00:14:21,890 286 00:14:21,890 --> 00:14:28,400 F2 F1 edir kimi, biz bu anlamaq bir arqument kimi, sonra F2 daxilində, 287 00:14:28,400 --> 00:14:31,190 f Çağırış deməkdir olur kodu bu xətt ki, 288 00:14:31,190 --> 00:14:34,192 bu iki xətləri sonra indeksi, "salam" nəticələr 289 00:14:34,192 --> 00:14:35,400 konsol çap olunur. 290 00:14:35,400 --> 00:14:41,660 291 00:14:41,660 --> 00:14:44,910 >> biz keçə bilər ki, ətrafında funksiyaları dəyərlər 292 00:14:44,910 --> 00:14:47,870 ən biri olan qədər başa JavaScript güclü xüsusiyyətləri 293 00:14:47,870 --> 00:14:49,700 bir proqramlaşdırma dili kimi. 294 00:14:49,700 --> 00:14:52,782 Bütün Outside bunu edə bilər, zəhmli şeyi, 295 00:14:52,782 --> 00:14:54,990 yalnız bir xüsusiyyət kimi yol baxımından dili 296 00:14:54,990 --> 00:14:58,400 bu şeyi asan edir ki, proqram və imkan verir 297 00:14:58,400 --> 00:15:01,060 xüsusilə olmayan şeylər üçün web yaxşı uyğun, 298 00:15:01,060 --> 00:15:04,500 funksional proqramlaşdırma və funksional JavaScript proqramlaşdırma aspektləri 299 00:15:04,500 --> 00:15:07,130 ən biridir güclü anlayışlar ki, 300 00:15:07,130 --> 00:15:11,030 Mənə soruşsanız JavaScript mövcuddur. 301 00:15:11,030 --> 00:15:11,960 Cool. 302 00:15:11,960 --> 00:15:13,534 >> Belə ki, növbəti şey. 303 00:15:13,534 --> 00:15:16,450 Funksional olmaqla yanaşı, JavaScript elementləri də var 304 00:15:16,450 --> 00:15:20,510 obyekt-yönümlü ki, olan çox biri 305 00:15:20,510 --> 00:15:23,800 kompüter məşhur buzz söz. 306 00:15:23,800 --> 00:15:27,040 Obyekt-yönümlü proqramlaşdırma həqiqətən məşhur bir şeydir. 307 00:15:27,040 --> 00:15:34,210 JavaScript ki, bir versiyası var, Mən hər dəyəri də hesab olduğu 308 00:15:34,210 --> 00:15:41,475 hər bir obyekt deməkdir bir obyekt, dəyərlər bəzi sayını birlikdə wraps. 309 00:15:41,475 --> 00:15:44,020 310 00:15:44,020 --> 00:15:49,750 Sadə dəyərlər kimi Belə ki , varX kimi bir tam, 5 bərabərdir 311 00:15:49,750 --> 00:15:52,250 ki, obyekt yalnız bir dəyər wraps. 312 00:15:52,250 --> 00:15:54,760 313 00:15:54,760 --> 00:15:59,036 >> Amma biz də bir vəziyyət təsəvvür edə bilərsiniz biz C hallar hesab edə bilər oxlar 314 00:15:59,036 --> 00:16:00,910 Biz nə istədi structs ilə bir şey, 315 00:16:00,910 --> 00:16:03,285 Məsələn, bir neçə wraps birlikdə dəyərlər və markalar 316 00:16:03,285 --> 00:16:05,870 həqiqətən asan ətrafında şeyi keçmək. 317 00:16:05,870 --> 00:16:09,270 Bir obyekt JavaScript zaman var. 318 00:16:09,270 --> 00:16:12,340 >> Bu xatırlamaq vacibdir Mən obyektləri bükülmüş ki, zaman 319 00:16:12,340 --> 00:16:15,330 birlikdə dəyərlərin bəzi sayı, funksiyaları da var ki, 320 00:16:15,330 --> 00:16:21,506 funksiyaları bilər o deməkdir ki dəyərləri, həmçinin JavaScript obyekt daxilində ola bilər. 321 00:16:21,506 --> 00:16:26,910 Və vacibdir səbəbi ki, tez-tez biz isə 322 00:16:26,910 --> 00:16:30,290 bir üsul zəng edirəm ki, bir obyekt 323 00:16:30,290 --> 00:16:35,200 digər bir məşhur müddət Məşhur obyekt-yönümlü dil, 324 00:16:35,200 --> 00:16:39,330 fərqlər burada ki, bir üsuldur JavaScript ki, bütün 325 00:16:39,330 --> 00:16:47,270 dəyəri bir obyekt daxilində saxlanılır ki, bəlkə bəzi action-- həyata keçirir 326 00:16:47,270 --> 00:16:51,850 daxili digər dəyərləri istifadə edərək, obyekt, lakin mütləq. 327 00:16:51,850 --> 00:16:56,930 Belə ki, mən bir vəziyyət təsəvvür edə bilərsiniz bir crazy yol bir az tapmaq, 328 00:16:56,930 --> 00:17:02,990 Siz bir metodu adlanır harada Məsələn, bir obyekt obyekt. 329 00:17:02,990 --> 00:17:06,010 Belə ki, yol funky bir az var. 330 00:17:06,010 --> 00:17:09,369 >> Və siz də üsulları dəyişə bilərsiniz bir obyekt ilə bağlı ki, 331 00:17:09,369 --> 00:17:13,740 ki, üsul a təyin da yeni funksiya, 332 00:17:13,740 --> 00:17:18,250 digər olduqca müxtəlif obyekt-yönümlü dil, 333 00:17:18,250 --> 00:17:21,410 biz bir obyekt bəyan dəfə və instantiate, 334 00:17:21,410 --> 00:17:25,839 biz üsulları dəyişə bilməz Artıq obyekt ilə bağlı. 335 00:17:25,839 --> 00:17:28,680 Belə ki, olduqca fərqli. 336 00:17:28,680 --> 00:17:29,570 Cool. 337 00:17:29,570 --> 00:17:34,010 >> Belə ki, burada ilk bir misal var, fəaliyyət bir obyekt. 338 00:17:34,010 --> 00:17:36,390 Bu deyirlər nə ümumi obyekt olan 339 00:17:36,390 --> 00:17:39,460 hər hansı bir yoxdur o deməkdir ki, xüsusi adı, bir sinif yoxdur 340 00:17:39,460 --> 00:17:42,190 Bu dəyərlərin bəzi wrapping var. 341 00:17:42,190 --> 00:17:49,790 Və görünür yolu var, var buruq bu xarici cüt burada aşırma 342 00:17:49,790 --> 00:17:57,950 JavaScript göstərir ki, bu bir obyekt deyil, deyirlər. 343 00:17:57,950 --> 00:18:02,130 onun daxilində dəyərləri Hər dəyərlər daxilində 344 00:18:02,130 --> 00:18:04,590 obyekt lazımdır ki, birlikdə bükülmüş. 345 00:18:04,590 --> 00:18:09,180 Və obyekt daxilində, biz sonra, əsas dəyər cüt var 346 00:18:09,180 --> 00:18:13,880 əsas adı aiddir harada obyekt daxilində dəyərinin, 347 00:18:13,880 --> 00:18:16,790 və digər tərəfə colon buradan qarşı 348 00:18:16,790 --> 00:18:19,850 faktiki dəyəri ki, saxlanılır olmalıdır. 349 00:18:19,850 --> 00:18:26,210 >> Belə ki, biz bir var ki, burada baxın əsas dəyəri Sam ilə FN adlı, 350 00:18:26,210 --> 00:18:29,430 bir vergül sonra, növbəti giriş üzərində etdi. 351 00:18:29,430 --> 00:18:33,560 Sonra ln adlı əsas, yaşıl bir dəyəri, 352 00:18:33,560 --> 00:18:35,840 bir vergül sonra, "çap" izlədi 353 00:18:35,840 --> 00:18:43,209 bir funksiyası dəyər gedir ki, ki, kodu bu xətt nə gedir. 354 00:18:43,209 --> 00:18:45,500 Bir addım geri almaq imkan və burada neler açmaq. 355 00:18:45,500 --> 00:18:47,280 Belə ki, bu, bir az mürəkkəbdir və biz yeni bir şey gördükdə 356 00:18:47,280 --> 00:18:48,071 ilk dəfə. 357 00:18:48,071 --> 00:18:51,190 358 00:18:51,190 --> 00:18:55,065 "Bu" söz yeni bir şey deyil Biz burada görən, və bu nə edirik 359 00:18:55,065 --> 00:19:00,540 edir cari aiddir sağ, əhatə dairəsi etiraz? 360 00:19:00,540 --> 00:19:03,990 Beləliklə, biz bu deyəndə geri bütün yol göstərir 361 00:19:03,990 --> 00:19:08,140 bütün bu obyekt üçün biz this.fn nə zaman, 362 00:19:08,140 --> 00:19:11,990 Biz geri bütün yol getmək olacaq bu obyekt üçün, FN dəyəri getmək 363 00:19:11,990 --> 00:19:16,471 və Sam almaq, bu bütün yol çəkmək geri, burada qalmaq, sonra hərəkət. 364 00:19:16,471 --> 00:19:19,838 >> Auditoriya: axtarış Belə ki, var çünki parametri həyata 365 00:19:19,838 --> 00:19:20,621 müəyyən? 366 00:19:20,621 --> 00:19:23,870 SAM GREEN: sual idi ki, var axtarış çünki parametri həyata 367 00:19:23,870 --> 00:19:24,727 müəyyən? 368 00:19:24,727 --> 00:19:25,435 Bəli, tamamilə. 369 00:19:25,435 --> 00:19:29,660 370 00:19:29,660 --> 00:19:32,470 Bundan əlavə, burada nə olacaq Bu dot, JavaScript deyir 371 00:19:32,470 --> 00:19:39,990 OK, mən bir dəyər alıram özüm bu obyekt. 372 00:19:39,990 --> 00:19:46,375 Və sonra bir giriş üçün baxmaq lazımdır FN adlanır və onu aşkar etdikdə, 373 00:19:46,375 --> 00:19:48,470 bu sam var, belə ki, dəyər qayıtmaq lazımdır. 374 00:19:48,470 --> 00:19:51,540 Amma mən də yazdığınız bilər burada müəyyən deyil ki, bir şey, 375 00:19:51,540 --> 00:19:54,090 və o, yalnız ki undefined-- qayıtmaq hansı 376 00:19:54,090 --> 00:19:58,250 bir şey JavaScript bilər fayda ola bilər ki, yoxdur, 377 00:19:58,250 --> 00:20:03,190 bir typo etmək, lakin bu, also-- var Bu qəribə səhvlər ilə nəticələnə bilər. 378 00:20:03,190 --> 00:20:05,617 Belə ki, yalnız tapmaq üçün çalışacağıq Siz tapmaq üçün demək nə 379 00:20:05,617 --> 00:20:07,700 və niyyətində deyil tapa olmadıqda şikayət. 380 00:20:07,700 --> 00:20:11,390 Bu, sadəcə yox idi, demək lazımdır tapmaq, və sonra hərəkət. 381 00:20:11,390 --> 00:20:17,581 Belə ki, undefined olunacaq plus boş, plus son ad. 382 00:20:17,581 --> 00:20:18,080 Bəli. 383 00:20:18,080 --> 00:20:21,070 Və sonra biz görə bilərsiniz, əgər biz sonra aşağı getmək və access-- bilər 384 00:20:21,070 --> 00:20:25,450 və biz parantez ilə tf.print () zəng. 385 00:20:25,450 --> 00:20:30,000 Bu çap zəng edəcək heç bir dəlilləri ilə funksiyası, sağ? 386 00:20:30,000 --> 00:20:34,490 Amma əgər biz yalnız bildirib tf.print () nöqtəli vergül, parantez olmadan, 387 00:20:34,490 --> 00:20:37,480 edərdi ki, bütün çəkin dəyəri funksiyası həyata, 388 00:20:37,480 --> 00:20:40,609 lakin həqiqətən adlandırıb deyil. 389 00:20:40,609 --> 00:20:41,162 Cool. 390 00:20:41,162 --> 00:20:42,870 HUGH Zabriskie: lazımdır biz bir obyekt etmək? 391 00:20:42,870 --> 00:20:44,161 SAM GREEN: Əlbəttə, ki, nə edək. 392 00:20:44,161 --> 00:20:48,750 Mən bu hərəkət edə bilər konsol nümunəsidir. 393 00:20:48,750 --> 00:20:51,380 394 00:20:51,380 --> 00:20:55,466 Biz bir obyekt var ki, təsəvvür edə bilərsiniz. 395 00:20:55,466 --> 00:21:03,026 396 00:21:03,026 --> 00:21:04,150 Belə ki, bu sadə bir obyekt deyil. 397 00:21:04,150 --> 00:21:06,910 398 00:21:06,910 --> 00:21:11,050 Bu iki olan bir obyekt iki düymələri ilə dəyərlər, iki əsas dəyəri 399 00:21:11,050 --> 00:21:12,710 cüt. 400 00:21:12,710 --> 00:21:21,850 Mən sonra saxlanılır dəyəri əldə edə bilərsiniz x.x1 etməklə bu obyekt daxilində, 401 00:21:21,850 --> 00:21:23,400 Məsələn, mən 1 geri almaq. 402 00:21:23,400 --> 00:21:29,590 Eyni zamanda, x.x2 ki, dəyəri geri almaq. 403 00:21:29,590 --> 00:21:33,330 >> İndi həqiqətən sərin şey mən, var həqiqətən, bu obyekt üçün bir şey əlavə 404 00:21:33,330 --> 00:21:34,316 Mən bunu yaratdıq sonra. 405 00:21:34,316 --> 00:21:36,315 Belə ki, edək, təsəvvür edə bilərsiniz Mən bir funksiyası var deyirlər. 406 00:21:36,315 --> 00:21:44,430 407 00:21:44,430 --> 00:21:46,352 >> HUGH Zabriskie: Siz -daxil Shift var. 408 00:21:46,352 --> 00:21:47,643 >> SAM GREEN: Oh, ki, annoying var. 409 00:21:47,643 --> 00:22:02,460 410 00:22:02,460 --> 00:22:04,324 Nə kimi deyil? 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 Burada getmək. 414 00:22:08,691 --> 00:22:09,190 Cool. 415 00:22:09,190 --> 00:22:12,840 >> Mən yalnız yaratdığınız bu funksiya, f ki, 416 00:22:12,840 --> 00:22:17,590 cari getmək üçün gedir object və çap this.x1. 417 00:22:17,590 --> 00:22:20,330 Mən yalnız ilə f zəng əgər özü heç bir şey olacaq 418 00:22:20,330 --> 00:22:26,970 heç bir x1 var, çünki, sağ, baş Bu istinad edir obyekt sahəsində. 419 00:22:26,970 --> 00:22:39,710 Amma sonra, x.f = f, və demək, əgər mən x.f () zəng, mən 1 almaq üçün gedirəm. 420 00:22:39,710 --> 00:22:42,990 421 00:22:42,990 --> 00:22:46,530 Ki, f funksiyası indi object x ilə bağlı, 422 00:22:46,530 --> 00:22:51,800 əsas adlı X1 olan dəyəri 1 ilə bağlı, 423 00:22:51,800 --> 00:22:54,570 biz this.x1 zəng zaman, belə ki, bu üçün axtarır nə tapmaq üçün gedir 424 00:22:54,570 --> 00:22:56,450 və bir dəyər çap edə bilərsiniz. 425 00:22:56,450 --> 00:22:58,700 Belə ki, yalnız bir misal var crazy şeyi növ 426 00:22:58,700 --> 00:23:01,190 Siz JavaScript obyektləri ilə edə bilərsiniz. 427 00:23:01,190 --> 00:23:03,870 428 00:23:03,870 --> 00:23:07,560 >> Belə ki, versiyası idi ümumi versiyası, mənası 429 00:23:07,560 --> 00:23:13,780 Biz bu istifadə edərək obyekt yaratdıq ki, , notation-- brace notation parantez 430 00:23:13,780 --> 00:23:16,880 rather-- və ki Lazımlı biz yalnız istəyirsinizsə 431 00:23:16,880 --> 00:23:21,440 xüsusi obyektin bir misal, lakin biz daha çox etmək istəyirsinizsə 432 00:23:21,440 --> 00:23:22,210 eyni cür? 433 00:23:22,210 --> 00:23:24,440 Və cavab sual şeylər var 434 00:23:24,440 --> 00:23:26,760 həmçinin JavaScript dərsləri çağırıb. 435 00:23:26,760 --> 00:23:31,470 436 00:23:31,470 --> 00:23:36,420 Biz bir funksiyası yaratmaq bilər ki, başlatma bir növ edir 437 00:23:36,420 --> 00:23:41,690 xarici obyekt üçün, və biz kimi, demək istədiyiniz 438 00:23:41,690 --> 00:23:44,550 adı mənim sinif reusable obyekt of 439 00:23:44,550 --> 00:23:47,100 onu müəyyən funksiyası bərabərdir. 440 00:23:47,100 --> 00:23:52,280 Belə ki, bu ekvivalent olacaq nə bir obyekt yaradır ki, 441 00:23:52,280 --> 00:23:55,930 kimi yalnız olacaq, buruq brace, str, kolon, 442 00:23:55,930 --> 00:23:59,630 bu bir simli, nöqtəli vergül, buruq brace. 443 00:23:59,630 --> 00:24:01,880 Ki generic olardı biz başlamaq obyekt, 444 00:24:01,880 --> 00:24:06,380 bir fərq ilə bağlı olan növbəti xətləri biz bir prototip yaradan 445 00:24:06,380 --> 00:24:11,190 bu bir default əsas var o deməkdir ki, Biz obyekt əlavə 446 00:24:11,190 --> 00:24:13,970 burada verilmişdir dəyəri var. 447 00:24:13,970 --> 00:24:20,570 , Yəni ki, mən yeni bir yaratmaq zaman bu MyClass obyekt instansiya, 448 00:24:20,570 --> 00:24:27,440 Bu daxilində pre-inşa olacaq Bu dəyəri küç adlanır və bir dəyəri 449 00:24:27,440 --> 00:24:32,418 adlı myPrint, gedən bir funksiyası olacaq. 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 >> Great. 453 00:24:37,990 --> 00:24:40,710 Belə ki, son şey üçün JavaScript haqqında demək 454 00:24:40,710 --> 00:24:46,430 Bu nə üçün həqiqətən faydalı var ki asinxron əməliyyatları deyilir. 455 00:24:46,430 --> 00:24:52,500 Asynchronous vasitədir ki, biz bir əməliyyat üçün gözləmək bilər 456 00:24:52,500 --> 00:24:57,870 biz hərəkət əvvəl başa çatdırmaq üçün biz gözləmək isə, həm hərəkət 457 00:24:57,870 --> 00:24:59,690 və sonra bir şey sonra baş var. 458 00:24:59,690 --> 00:25:03,480 Və nə ki, demək, siz var bir vəziyyət olduğu təsəvvür edə bilərsiniz 459 00:25:03,480 --> 00:25:06,850 Bir sorğu göndər haradasa bir web server, 460 00:25:06,850 --> 00:25:09,670 və geri göndərmək olacaq məlumatların bəzi böyük bir yığın, sağ? 461 00:25:09,670 --> 00:25:13,320 Və istifadəçi gözləyin bilər Bu vaxt baş üçün, 462 00:25:13,320 --> 00:25:15,200 və heç bir şey ola bilər o zaman olur. 463 00:25:15,200 --> 00:25:18,110 Amma ki, böyük bir dizayn, sağ deyil? 464 00:25:18,110 --> 00:25:20,214 Siz web page dondurmaq istəmirəm. 465 00:25:20,214 --> 00:25:22,380 Nə istifadəçi istəyirsə açılan menüsünü basın? 466 00:25:22,380 --> 00:25:24,870 Bu, böyük bir dizayn model deyil. 467 00:25:24,870 --> 00:25:29,290 Əksinə, əsasən nə JavaScript, deyir etmir 468 00:25:29,290 --> 00:25:31,870 OK, asynchronously bu əməliyyatı etmək. 469 00:25:31,870 --> 00:25:36,520 Belə ki, kimi fonunda gözləyin və sonra əməliyyat görülən zaman 470 00:25:36,520 --> 00:25:39,420 callback zəng funksiyası bir funksiyası zəng, 471 00:25:39,420 --> 00:25:43,800 ki, bəzi action-- siqnal yoxdur biz son gözləyir əməliyyat 472 00:25:43,800 --> 00:25:45,520 bitdi. 473 00:25:45,520 --> 00:25:51,240 Və super güclü səbəbi, biz bir şey mübahisə keçə bilər, 474 00:25:51,240 --> 00:25:54,440 bir şey, sonra gözləyin bir şey baş üçün. 475 00:25:54,440 --> 00:25:58,970 Sonra ki, bir şey bir dəfə bir callback zəng edə bilərsiniz tamamlayır. 476 00:25:58,970 --> 00:26:03,300 Bu imkan verir, çünki ki, həqiqətən lazımlı deyil us, Web Audio API ilə şeyi 477 00:26:03,300 --> 00:26:07,490 Məsələn, yük an kimi bir uzaq server audio fayl 478 00:26:07,490 --> 00:26:11,660 gözləyin olmadan Bütün audio fayl yüklənəcək, 479 00:26:11,660 --> 00:26:14,440 həqiqətən olacaq istifadəçi experience üçün pis. 480 00:26:14,440 --> 00:26:17,080 Cool. 481 00:26:17,080 --> 00:26:19,460 >> Son bir neçə haqqında qeydlər ayıklama, bu ildən bəri 482 00:26:19,460 --> 00:26:23,682 Siz var olacaq bir şeydir Sizin layihənin bir hissəsi kimi, zəmanət. 483 00:26:23,682 --> 00:26:25,140 Mən JavaScript konsol qeyd edib. 484 00:26:25,140 --> 00:26:27,550 Bu super faydalı xüsusiyyət var bütün müasir brauzerlərdə, 485 00:26:27,550 --> 00:26:30,300 Və biz, həqiqətən almaq üçün təşviq Sizin konsol istifadə rahat, 486 00:26:30,300 --> 00:26:33,660 JavaScript yaxşı almaq istəyirsinizsə. 487 00:26:33,660 --> 00:26:36,320 Bu, super lazımlı ayıklama, həm də var 488 00:26:36,320 --> 00:26:39,440 figuring üçün həqiqətən faydalı həyata necə API istifadə üçün. 489 00:26:39,440 --> 00:26:41,950 Bu, həqiqətən üçün imkan verir asan təcrübə 490 00:26:41,950 --> 00:26:45,910 Bəzi yazın olmadan indeksi, və sonra tərtib edir. 491 00:26:45,910 --> 00:26:47,500 Siz bütün bu addımlar yoxdur. 492 00:26:47,500 --> 00:26:49,619 Siz yalnız yaza bilərsiniz bir xətt bəzi indeksi, 493 00:26:49,619 --> 00:26:52,410 və sonra dərhal geribildirim almaq kodu ki, xətt və ya 494 00:26:52,410 --> 00:26:55,230 çox lazımlı işləyib. 495 00:26:55,230 --> 00:26:59,760 >> Və həmçinin, yalnız bir texniki note-- JavaScript konsol bir nümunəsidir 496 00:26:59,760 --> 00:27:05,680 ki, REPL R-E-P-L belə bir REPL-- ki, oxumaq üçün dayanır, qiymətləndirmək 497 00:27:05,680 --> 00:27:06,180 print loop. 498 00:27:06,180 --> 00:27:09,100 499 00:27:09,100 --> 00:27:12,120 Siz bəzi məhsulları yazın olacaq , bu Yığdığınız nə oxumaq lazımdır, 500 00:27:12,120 --> 00:27:17,280 bu qiymətləndirmək lazımdır və bu, çap edəcəyik çıxış, və sonra yenidən başlamaq lazımdır. 501 00:27:17,280 --> 00:27:22,056 Bu, sürətlə getmək üçün imkan verir dairələr həqiqətən sərin olan iterating. 502 00:27:22,056 --> 00:27:25,150 503 00:27:25,150 --> 00:27:28,930 >> Mən bu note-- real Son tapmaq Bəli, faktiki son qeyd edir. 504 00:27:28,930 --> 00:27:30,780 Necə ki, biz, həqiqətən, JavaScript istifadə edirsiniz? 505 00:27:30,780 --> 00:27:34,040 Belə ki, ilk, biz idxal edə bilər bir script tag istifadə 506 00:27:34,040 --> 00:27:39,500 HTML üst və ya alt fayl hər hansı bir HTML fayl daxilində, 507 00:27:39,500 --> 00:27:40,440 həqiqətən. 508 00:27:40,440 --> 00:27:47,390 Və script tag ərzində var JavaScript idxal iki alt yolları. 509 00:27:47,390 --> 00:27:51,370 ilk etməkdir ayrı-ayrı JavaScript fayl 510 00:27:51,370 --> 00:27:58,010 biz bütövlükdə idxal və ya script kimi kod sahəsi olan 511 00:27:58,010 --> 00:28:00,290 sonra başlamaq, və backslash script son. 512 00:28:00,290 --> 00:28:02,620 Və sonra biz yalnız yazmaq HTML fayl daxilində JavaScript. 513 00:28:02,620 --> 00:28:03,790 Bu iki yol var. 514 00:28:03,790 --> 00:28:05,165 HTML daxilində ola bilməz. 515 00:28:05,165 --> 00:28:06,502 516 00:28:06,502 --> 00:28:08,126 Auditoriya: başqa bir yaxşı deyilmi? 517 00:28:08,126 --> 00:28:10,542 SAM GREEN: sual idi, başqa bir yaxşıdır. 518 00:28:10,542 --> 00:28:18,306 Belə ki, bəli, bir kodlaşdırma stil təcrübə kimi, və həmçinin bir dizayn təcrübə kimi. 519 00:28:18,306 --> 00:28:20,180 Iki səbəbi var niyə daha yaxşı ola bilər. 520 00:28:20,180 --> 00:28:23,934 ilk sizin kodu edir, edir daha çox oxunaqlı HTML bütün əgər 521 00:28:23,934 --> 00:28:27,100 bir yerdə, sizin CSS bütün edir başqa bir yerdə, sizin JavaScript bütün 522 00:28:27,100 --> 00:28:28,420 üçüncü yerdədir. 523 00:28:28,420 --> 00:28:28,920 Sağ? 524 00:28:28,920 --> 00:28:32,370 Düşünürəm ki, biz artıq danışmışıq etməlidir sections-- kimi bu barədə CSS nə 525 00:28:32,370 --> 00:28:35,220 ki is-- və gedir tez-tez bir fayl. 526 00:28:35,220 --> 00:28:37,090 Belə ki, burada konsepsiyası oxşar cür. 527 00:28:37,090 --> 00:28:42,410 Siz həmçinin təsəvvür edə bilərsiniz JavaScript çox bir yeniden olunacaq 528 00:28:42,410 --> 00:28:47,350 HTML səhifə, və ya bəlkə bir çox HTML pages, 529 00:28:47,350 --> 00:28:49,340 ki, JavaScript olan birinə refactored 530 00:28:49,340 --> 00:28:51,950 Siz idxal edə bilər ki, fayl daha çox bir yerdə 531 00:28:51,950 --> 00:28:54,570 code imkan verir yol daha maintainable. 532 00:28:54,570 --> 00:28:57,930 Siz bir edilməsi təsəvvür edə bilərsiniz JavaScript dəyişdirmək 533 00:28:57,930 --> 00:29:00,070 və olan dəyişdirmək üçün 100 müxtəlif faylları. 534 00:29:00,070 --> 00:29:04,070 Əvəzinə biz yalnız dəyişə bilərsiniz yol daha güclü biri ilə. 535 00:29:04,070 --> 00:29:05,420 Mən sizin suala cavab mi? 536 00:29:05,420 --> 00:29:07,950 Cool. 537 00:29:07,950 --> 00:29:10,830 >> Biz də konsol daxil edə bilərsiniz Biz əvvəl qeyd etdiyiniz kimi. 538 00:29:10,830 --> 00:29:15,070 Və yenə son bir note-- Audio inşa Web, 539 00:29:15,070 --> 00:29:16,978 Bir şey yüklemek üçün ehtiyac yoxdur. 540 00:29:16,978 --> 00:29:17,478 Cool. 541 00:29:17,478 --> 00:29:20,519 Hər hansı bir sualınız var siz var JavaScript haqqında bir daha suallar, 542 00:29:20,519 --> 00:29:21,930 Biz hərəkət əvvəl? 543 00:29:21,930 --> 00:29:24,286 >> Auditoriya: [işitilemez] 544 00:29:24,286 --> 00:29:25,410 SAM GREEN: Bütün sağ, sərin. 545 00:29:25,410 --> 00:29:27,200 Belə ki, indi o API haqqında danışmaq olacaq. 546 00:29:27,200 --> 00:29:28,490 >> HUGH Zabriskie: Cool. 547 00:29:28,490 --> 00:29:28,990 Thanks, Sam. 548 00:29:28,990 --> 00:29:30,184 >> SAM GREEN: Sure. 549 00:29:30,184 --> 00:29:32,600 HUGH Zabriskie: Awesome, belə ki, biz JavaScript hərəkət edəcəyik. 550 00:29:32,600 --> 00:29:35,350 Beləliklə, biz bəzi haqqında söhbət etdik JavaScript essentials, 551 00:29:35,350 --> 00:29:41,105 və o dəyişənlər, funksiyaları, obyektləri, dəyişənlərin kimi funksiyaları, 552 00:29:41,105 --> 00:29:41,980 asynchronous loading. 553 00:29:41,980 --> 00:29:46,100 Bu ki, siz lazımdır hər şeyi var Web Audio istifadə bax. 554 00:29:46,100 --> 00:29:49,230 Belə ki, biz yalnız danışmaq olacaq yüksək səviyyədə ilk bu barədə. 555 00:29:49,230 --> 00:29:52,120 >> Bu API var, belə ki, bir şey Sam bildirib ki, inşa, 556 00:29:52,120 --> 00:29:57,010 sağ JavaScript daxil Siz konsol istifadə edir. 557 00:29:57,010 --> 00:30:01,020 Və yalnız C kimi ++ code həqiqətən ki, həqiqətən Chrome daxil edilir 558 00:30:01,020 --> 00:30:04,470 və Firefox, və bu brauzerlərdə bütün. 559 00:30:04,470 --> 00:30:07,060 Web ilə əsas fikir belə Audio var ki, 560 00:30:07,060 --> 00:30:09,440 audio boru kəmərinin bu cür, sağ? 561 00:30:09,440 --> 00:30:13,670 Belə ki, audio data bəzi formada gəlir. 562 00:30:13,670 --> 00:30:16,690 >> Üç əsas forms-- növü var Siz oscillator, olan 563 00:30:16,690 --> 00:30:21,340 bir sine dalğa yaradır, kosinus dalğa, ki, necə işlədiyini görmək olacaq. 564 00:30:21,340 --> 00:30:23,890 Bir çox ümumi bir, əlbəttə, bir MP3 edir. 565 00:30:23,890 --> 00:30:25,810 Belə ki, bəlkə ilə başlamaq bir mahnı, sonra 566 00:30:25,810 --> 00:30:28,320 bəzi filtreleme etmək istəyirəm ki, çıxış 567 00:30:28,320 --> 00:30:30,605 ki that-- mümkün mənbə ola bilər. 568 00:30:30,605 --> 00:30:32,480 Və sonra, həqiqətən, sərin bir mikrofon var. 569 00:30:32,480 --> 00:30:37,230 Belə ki, bir çox istifadə edə bilərsiniz JavaScript əsas zənglər 570 00:30:37,230 --> 00:30:39,440 əldə etmək üçün mikrofon və əgər belə 571 00:30:39,440 --> 00:30:42,870 bir app etmək istədi bir meydança detector kimi, 572 00:30:42,870 --> 00:30:45,290 Məsələn, ki, edir Səs və rəqəmlər 573 00:30:45,290 --> 00:30:47,740 ki, pitch-- çox asan bir yoldur. 574 00:30:47,740 --> 00:30:50,730 Siz yalnız növ oxuya bilərsiniz da, tezliyi anlamaq, 575 00:30:50,730 --> 00:30:52,250 və sonra çıxış nömrəsi. 576 00:30:52,250 --> 00:30:56,080 Belə ki, necə işlədiyini görmək, həm də lazımdır. 577 00:30:56,080 --> 00:30:59,430 >> təyinat əsasən harada audio data çıxış edir. 578 00:30:59,430 --> 00:31:02,890 Belə ki, ümumiyyətlə, bu kimi Sizin laptop speakers. 579 00:31:02,890 --> 00:31:05,610 Digər seçimlər kimi bir ScriptProcessorNode-- 580 00:31:05,610 --> 00:31:07,990 biz qovşaqlarının almaq lazımdır second-- lakin əsasən, 581 00:31:07,990 --> 00:31:11,939 Ya səs qoyulması edirik Sizin kompüter vasitəsilə speakers vasitəsilə, 582 00:31:11,939 --> 00:31:14,730 və ya cür, belə ki, onu qeyd edirik Siz audio data kimi saxlanılması edirik. 583 00:31:14,730 --> 00:31:18,980 Belə ki, bəlkə kimsə yaradır əgər musiqi app və sonra 584 00:31:18,980 --> 00:31:22,410 Siz və bəlkə kimi ki qeyd etmək istəyirəm misal üçün, SoundCloud ixrac 585 00:31:22,410 --> 00:31:25,281 ki, bunu bir yol ola bilər. 586 00:31:25,281 --> 00:31:27,030 Bütün fun stuff, biz haqqında danışmaq lazımdır ki, 587 00:31:27,030 --> 00:31:29,950 Bu iki xal arasında olur, biz musiqi yük harada 588 00:31:29,950 --> 00:31:31,410 və sonra çıxdı. 589 00:31:31,410 --> 00:31:36,660 >> Beləliklə, mən beş haqqında danışmaq üçün gedirəm ikinci audio istehsal mərhələləri. 590 00:31:36,660 --> 00:31:38,950 Biz adlanan bu şey var bir AudioContext olan 591 00:31:38,950 --> 00:31:41,580 Biz burada bu kiçik banderol edir. 592 00:31:41,580 --> 00:31:49,980 Biz, əgər əsasən nə is-- AudioContext İndi JavaScript konsol getmək, 593 00:31:49,980 --> 00:31:52,740 biz indi bir yarada bilərsiniz. 594 00:31:52,740 --> 00:31:54,040 REPL yalnız bir nümunəsidir, sağ? 595 00:31:54,040 --> 00:31:57,880 Biz oxuyursunuz, qiymətləndirilməsi və bu görüntüler. 596 00:31:57,880 --> 00:32:00,260 >> AudioContext qlobal dövlətdir. 597 00:32:00,260 --> 00:32:05,500 Bu, bir obyekt bir struct var var burada, bu və məlumat saxlayır 598 00:32:05,500 --> 00:32:09,960 şeylər haqqında gedir ki, audio ilə bağlı ekranda. 599 00:32:09,960 --> 00:32:15,220 Məsələn, cari vaxt. 600 00:32:15,220 --> 00:32:18,910 Bu sayı deyir saniyə, çox dəqiq, 601 00:32:18,910 --> 00:32:20,890 web page-ci ildən dolu. 602 00:32:20,890 --> 00:32:24,110 Belə ki, bu, həqiqətən faydalı istifadə edə bilərsiniz az əmlak. 603 00:32:24,110 --> 00:32:27,898 Bu only-- oxumaq Mən, həqiqətən, hesab edirəm ki, Siz bir dəyər təyin etmək üçün cəhd edə bilərsiniz. 604 00:32:27,898 --> 00:32:29,856 Bu müəyyən demək lazımdır, və sonra onu çap əgər 605 00:32:29,856 --> 00:32:31,439 again-- həqiqətən çox iş olmadı. 606 00:32:31,439 --> 00:32:34,472 Belə ki, orada yalnız oxumaq olunur JavaScript xassələri. 607 00:32:34,472 --> 00:32:36,430 Bu, həqiqətən faydalıdır cür senkronizasyonu edirik 608 00:32:36,430 --> 00:32:38,610 müxtəlif bir çox məlumat zaman etdiyiniz 609 00:32:38,610 --> 00:32:41,280 cür müxtəlif səslər oynayır. 610 00:32:41,280 --> 00:32:43,630 >> Digər həqiqətən faydalı bir kontekstində yerdir. 611 00:32:43,630 --> 00:32:46,587 612 00:32:46,587 --> 00:32:49,670 Əgər istəyirsinizsə mütləq ola Öz konsol sağ bu çalışır 613 00:32:49,670 --> 00:32:50,980 indi. 614 00:32:50,980 --> 00:32:53,150 Belə ki, bu AudioDestinationNode edir. 615 00:32:53,150 --> 00:32:56,480 Əsasən bu nə deyir, çıxış hara gedir? 616 00:32:56,480 --> 00:32:59,590 Belə ki, burada iki real variantları var. 617 00:32:59,590 --> 00:33:01,940 Adətən default yalnız anadil edir 618 00:33:01,940 --> 00:33:05,150 belə AudioDestinationNode əsasən yalnız deyir 619 00:33:05,150 --> 00:33:09,240 səs sıfır nəticələr var gələn, natiq göndərildi. 620 00:33:09,240 --> 00:33:12,050 Belə ki, ümumiyyətlə, siz deyil ki, oynamaq lazımdır. 621 00:33:12,050 --> 00:33:15,720 Siz, həqiqətən, istifadə istəyirsinizsə Qeyd ScriptProcessorNode, 622 00:33:15,720 --> 00:33:16,990 mütləq mənə bir atmaq e-poçt ki, sonra, çünki 623 00:33:16,990 --> 00:33:18,330 bir az daha mürəkkəb. 624 00:33:18,330 --> 00:33:21,590 Amma, ümumiyyətlə, yalnız gözləyirik hansı formada səs tipi. 625 00:33:21,590 --> 00:33:24,347 Belə ki, sərin, biz burada geri jump lazımdır. 626 00:33:24,347 --> 00:33:25,180 Auditoriya: Mən təəssüf edirəm. 627 00:33:25,180 --> 00:33:26,054 HUGH Zabriskie: Bəli. 628 00:33:26,054 --> 00:33:28,770 Auditoriya: Mən sizə danışmaq bildirib bilirik Sizə daha sonra qeyd edir. 629 00:33:28,770 --> 00:33:31,550 Ki, Pro Tools ilə interface bilər? 630 00:33:31,550 --> 00:33:33,120 >> HUGH Zabriskie: Pro Tools ilə? 631 00:33:33,120 --> 00:33:35,260 Görək. 632 00:33:35,260 --> 00:33:37,220 Mən belə düşünmürəm. 633 00:33:37,220 --> 00:33:41,670 Belə ki, müştəri arasında gedir, olan JavaScript edir 634 00:33:41,670 --> 00:33:44,310 konsol, və faktiki kompüter, ümumiyyətlə 635 00:33:44,310 --> 00:33:46,490 cür bir şey məhdudiyyətlər off, əgər 636 00:33:46,490 --> 00:33:52,320 cür the-- xarakteri ilə, iradə bu bir dizayn şey növü var 637 00:33:52,320 --> 00:33:57,770 ancaq ayrı-ayrı brauzer saxlamaq üçün cəhd edin istifadəçi faktiki kompüter. 638 00:33:57,770 --> 00:34:02,310 Ümumiyyətlə, yalnız şey edə istəyirik giriş mikrofon və ya kamera. 639 00:34:02,310 --> 00:34:04,730 Siz edə deyilik, mən düşünmürəm, Pro Tools istifadə edin. 640 00:34:04,730 --> 00:34:07,480 Lakin, yaratdığınız əgər Pro Tools bir track, 641 00:34:07,480 --> 00:34:12,710 ki, yükləyə bilər ki, ixrac burada, məsələn, bu filtrelemek, 642 00:34:12,710 --> 00:34:16,820 proses olduğunu və o qeyd Audio hedef və ya bir sahəsi no-- 643 00:34:16,820 --> 00:34:17,870 Processor Node. 644 00:34:17,870 --> 00:34:20,730 Oradan Və sonra, siz bilər , SoundCloud siz ki, ixrac 645 00:34:20,730 --> 00:34:25,320 bir e-poçt göndərmək, və ya edə bilər hər hansı oradan istəyirəm. 646 00:34:25,320 --> 00:34:31,159 >> Amma kiçik bir maneə növ var Sizin kompüter musiqi edilməsi arasında 647 00:34:31,159 --> 00:34:33,050 və online musiqi edilməsi. 648 00:34:33,050 --> 00:34:37,940 >> SAM GREEN: ki, var Bu API xas deyil. 649 00:34:37,940 --> 00:34:44,060 Bu Chrome təhlükəsizlik xüsusiyyət var və Mən hər digər müasir browser edirəm. 650 00:34:44,060 --> 00:34:45,860 browser müstakil. 651 00:34:45,860 --> 00:34:50,980 Belə ki, məsələn, bir web səhifə bilməz səs çevirmək üçün JavaScript istifadə 652 00:34:50,980 --> 00:34:54,190 misal üçün natiqlər, haqqında. 653 00:34:54,190 --> 00:34:58,120 Yoxsa sizin kompüter söndürmək bilməz. 654 00:34:58,120 --> 00:35:01,530 Və heç bir aralıq məqam var bu iki şey arasında, sağ, 655 00:35:01,530 --> 00:35:05,960 belə ya bir var tam abstraksiya, 656 00:35:05,960 --> 00:35:10,050 və ya açmaq imkan təhlükəsizlik qüsur 657 00:35:10,050 --> 00:35:14,440 pis niyyətləri ilə bir proqramçı yoxdur nə onlar dizüstü ilə istədiyiniz. 658 00:35:14,440 --> 00:35:18,104 Chrome müstakil ki, var. 659 00:35:18,104 --> 00:35:19,310 >> HUGH Zabriskie: Bəli. 660 00:35:19,310 --> 00:35:20,840 Ki, hissi edirmi? 661 00:35:20,840 --> 00:35:21,369 Cool, sərin. 662 00:35:21,369 --> 00:35:23,160 Mən yalnız gedirdi bir nümunə göstərir. 663 00:35:23,160 --> 00:35:25,118 Bu kimi olduqca çox qədər baxımından, almaq kimi 664 00:35:25,118 --> 00:35:26,950 istifadəçi kompüter daxil. 665 00:35:26,950 --> 00:35:30,180 Əgər bir USB klaviatura, takıldığından Web deyilən bir şey istifadə edə bilərsiniz 666 00:35:30,180 --> 00:35:32,180 MIDI API olan biz deyil həqiqətən, burada haqqında danışmaq, 667 00:35:32,180 --> 00:35:36,330 lakin bu, başqa API yenidən ən azı Chrome-- daxil, 668 00:35:36,330 --> 00:35:41,570 biz Chrome-- sevgi niyə bu Mən Firefox və ya Safari edirəm 669 00:35:41,570 --> 00:35:44,300 bu asan bir şey deyil google-- müxtəlif brauzerlərdə var 670 00:35:44,300 --> 00:35:46,917 üçün müxtəlif dəstək API onlar həyata keçirdik. 671 00:35:46,917 --> 00:35:49,875 Siz istəyirdi əgər Amma klaviatura plug və ki, informasiya ilə işləmək, 672 00:35:49,875 --> 00:35:52,850 cür klaviatura göndərmək kompüter üzərində məlumat 673 00:35:52,850 --> 00:35:57,620 və sonra, bu API ki online istifadə ki, iş olarıq yerdir. 674 00:35:57,620 --> 00:35:58,150 >> Cool. 675 00:35:58,150 --> 00:35:58,710 OLDU. 676 00:35:58,710 --> 00:36:01,320 Belə ki, tez burada hərəkət. 677 00:36:01,320 --> 00:36:03,310 Necə ki, biz vaxtında edirik? 678 00:36:03,310 --> 00:36:04,210 >> HOPARLÖR 1: 15. 679 00:36:04,210 --> 00:36:05,543 >> HUGH Zabriskie: 15 dəqiqə sol? 680 00:36:05,543 --> 00:36:06,160 Sərin, OK. 681 00:36:06,160 --> 00:36:08,170 Beləliklə, biz burada qabaqda irqi lazımdır. 682 00:36:08,170 --> 00:36:13,500 >> Belə ki, əsasən, əsas nöqtə boru kəməri kimi bu düşüncə 683 00:36:13,500 --> 00:36:16,430 ki, boru kəməri hər bir addım audio qovşaqlarının bir sıra. 684 00:36:16,430 --> 00:36:19,284 685 00:36:19,284 --> 00:36:20,950 Bizim mənbə, deyək, bir oscillator edir. 686 00:36:20,950 --> 00:36:23,380 Biz oscillator node yaratmaq lazımdır. 687 00:36:23,380 --> 00:36:25,690 Və yalnız növüdür az funksiya 688 00:36:25,690 --> 00:36:30,460 və onlar bütün həyata əsasında edirik Burada audio kontekstində. 689 00:36:30,460 --> 00:36:32,885 >> Auditoriya: dedi oscillator, deməkdir 690 00:36:32,885 --> 00:36:37,250 Bu, həqiqətən sözün olacaq geri və irəli iki müxtəlif dirəkləri? 691 00:36:37,250 --> 00:36:41,170 >> HUGH Zabriskie: Xeyr, bu kimi bir digital nümayəndəliyi. 692 00:36:41,170 --> 00:36:42,740 Bu, faktiki olaraq C ++ tətbiq edir. 693 00:36:42,740 --> 00:36:46,460 Mən, həqiqətən, specs bilmirəm bu, həqiqətən həyata necə ki, 694 00:36:46,460 --> 00:36:48,500 lakin bütün bu ikili data kimi işləyir. 695 00:36:48,500 --> 00:36:51,260 696 00:36:51,260 --> 00:36:52,370 Əslində, evet. 697 00:36:52,370 --> 00:36:53,950 Mən ola bilər deyərək olunacaq həqiqətən, siz maraqlı olduğunuz halda, 698 00:36:53,950 --> 00:36:56,533 Mən sizə bir az daha göndərmək bilər necə waveforms haqqında məlumat 699 00:36:56,533 --> 00:37:00,181 Bir digital format olan saxlanılır. 700 00:37:00,181 --> 00:37:00,680 Sərin, OK. 701 00:37:00,680 --> 00:37:03,120 >> Beləliklə, biz bir sine kimi bir ton yaradan edirik bəlkə, dalğa və ya kimi bir şey 702 00:37:03,120 --> 00:37:04,190 440 Hertz. 703 00:37:04,190 --> 00:37:05,830 Biz oscillator yaradır. 704 00:37:05,830 --> 00:37:09,180 Biz həcmi müəyyən etmək istəyirsinizsə, biz bir GainNode bir şey əlaqə 705 00:37:09,180 --> 00:37:12,500 Hansı .creategain ilə edə bilər. 706 00:37:12,500 --> 00:37:14,250 Ki, həcmi müəyyən edir. 707 00:37:14,250 --> 00:37:17,820 Siz hər hansı bir daxil ki, keçə bilər Seçimlər yaxşı digər, 708 00:37:17,820 --> 00:37:20,300 belə bir audio bufer mənbə node harada bilər deyil 709 00:37:20,300 --> 00:37:23,660 Siz yüklü sonra bir MP3 saxlamayın. 710 00:37:23,660 --> 00:37:27,670 >> Biquad filter filtreleme əgər üçün Siz bütün baza etmək istəyirəm 711 00:37:27,670 --> 00:37:29,630 kimi bir mahnı, və ya bir şey. 712 00:37:29,630 --> 00:37:32,450 Allah etmək istəyirəm qadağan bir mahnı həyata bazası. 713 00:37:32,450 --> 00:37:36,980 Və AudioDestination node, təkrar edir kimi dəqiqləşməsi olduğu. 714 00:37:36,980 --> 00:37:39,980 Siz görən heç istəyirsinizsə bütün müxtəlif mümkün variantları, 715 00:37:39,980 --> 00:37:45,190 yalnız nişanı getmək və imkan avtomatik tamamlama gəlib. 716 00:37:45,190 --> 00:37:48,690 Yaratmaq əgər, siz bütün görürsünüz Siz yarada fərqli şeylər. 717 00:37:48,690 --> 00:37:50,398 Siz dinamik yarada script prosessorları, 718 00:37:50,398 --> 00:37:52,940 Mən hətta nə bilmirəm kanal birləşmə qarışdırma üçün, 719 00:37:52,940 --> 00:37:55,930 və kanal splitters və bütün. 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 >> Belə ki, bu yalnız bir deyil boru kəmərinin nümunəsidir. 723 00:38:01,390 --> 00:38:03,580 Beləliklə, biz üç mənbələri gələn var. 724 00:38:03,580 --> 00:38:06,830 Bəlkə bu waveforms var, bəlkə bu MP3s var. 725 00:38:06,830 --> 00:38:08,740 Bir keçir filter, başqa biri 726 00:38:08,740 --> 00:38:12,404 təhrif olmaq başqa bir turning sol və sağ. 727 00:38:12,404 --> 00:38:15,320 Siz şeyi bütün növ edə bilərsiniz və onlar bütün birlikdə ətrafında qarışıq almaq 728 00:38:15,320 --> 00:38:18,880 və sonra audio gəlir hedef olaraq sonunda. 729 00:38:18,880 --> 00:38:22,720 Bu nə daha bir nümunəsidir mürəkkəb Web Audio kodu kimi görünür. 730 00:38:22,720 --> 00:38:26,720 Siz bütün bu oluşturuyorsanız müxtəlif obyektlərin sağ burada 731 00:38:26,720 --> 00:38:27,706 Mən bu əmin deyiləm. 732 00:38:27,706 --> 00:38:29,120 Xeyr, bu, zoom deyil. 733 00:38:29,120 --> 00:38:29,620 OLDU. 734 00:38:29,620 --> 00:38:31,257 >> SAM GREEN: Siz nəzarət, gedin-Up yoxdur. 735 00:38:31,257 --> 00:38:32,590 HUGH Zabriskie: Control Scroll-- 736 00:38:32,590 --> 00:38:33,000 SAM GREEN: Yox, yox. 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: Oh, Control, gedin? 740 00:38:38,140 --> 00:38:38,780 Gotcha, Oh. 741 00:38:38,780 --> 00:38:41,480 Bəli. 742 00:38:41,480 --> 00:38:42,240 Xeyr, Xeyr, Wow. 743 00:38:42,240 --> 00:38:42,740 OLDU. 744 00:38:42,740 --> 00:38:46,090 Hesab edirəm ki, deyil. 745 00:38:46,090 --> 00:38:48,300 >> Belə ki, Bəli, bu ilk burada ikibölməli, görmək 746 00:38:48,300 --> 00:38:52,720 Biz bütün bu müxtəlif yaratmaq edirik kontekstində həyata qovşaqlarının. 747 00:38:52,720 --> 00:38:54,980 Biz yalnız onlara durub edirik birlikdə ikinci hissəsində 748 00:38:54,980 --> 00:38:56,980 Connect adlanan bu funksiya. 749 00:38:56,980 --> 00:38:58,830 Bu həqiqətən əsas var Web Audio funksiyası. 750 00:38:58,830 --> 00:39:01,930 Siz etdiyiniz bir dəfə yalnız deməkdir bir node səs ilə bir şey, 751 00:39:01,930 --> 00:39:03,705 növbəti node onu keçir. 752 00:39:03,705 --> 00:39:05,830 Beləliklə, biz mənbə var, onu analizator bağlanır, 753 00:39:05,830 --> 00:39:09,140 analizator, onunla bir şey yoxdur Bu, belə təhrif gedir və 754 00:39:09,140 --> 00:39:12,725 və təyinat burada altındakı. 755 00:39:12,725 --> 00:39:13,225 Cool. 756 00:39:13,225 --> 00:39:14,640 OK, belə ki, biz hərəkət saxlamaq lazımdır. 757 00:39:14,640 --> 00:39:17,180 >> pipeline-- yenə bu ən ümumi boru kəmərləri var, 758 00:39:17,180 --> 00:39:21,300 belə ki, biz kimi bütün bu şeylər haqqında danışmaq təhrif, turning, bütün bu stuff. 759 00:39:21,300 --> 00:39:24,280 Siz, həqiqətən, istəyirsinizsə şeyi Pro Tools istifadə, 760 00:39:24,280 --> 00:39:25,820 o, yəqin ki, maraq. 761 00:39:25,820 --> 00:39:27,740 Əgər, bəlkə siz yalnız səs oynamaq istəyirəm, 762 00:39:27,740 --> 00:39:29,990 və ya bəlkə yalnız istəyirəm səs həcmi seçin. 763 00:39:29,990 --> 00:39:35,270 Bu iki ən ümumi sort var audio istehsal boru kəmərləri. 764 00:39:35,270 --> 00:39:38,640 >> Yenə yolları bunu edə bilər bir oscillator--, belə ki, edək kimi 765 00:39:38,640 --> 00:39:42,460 bir burada ki, demo yoxdur. 766 00:39:42,460 --> 00:39:47,090 767 00:39:47,090 --> 00:39:52,225 Beləliklə, biz bir yaratmaq olacaq Burada sadə audio kontekstində, 768 00:39:52,225 --> 00:39:54,350 və biz olacaq Bizim oscillator yaratmaq. 769 00:39:54,350 --> 00:39:58,620 Ki Belə ki, daha, biz yalnız istəyirik osilatör yarat zəng etmək üçün gedir. 770 00:39:58,620 --> 00:40:07,030 Biz tezlik müəyyən olacaq 440 Hertz, hər kəsin sevimli ki,. 771 00:40:07,030 --> 00:40:13,290 Sonra biz təyinat olduğunu əlaqə point spikeri, belə ki, olan 772 00:40:13,290 --> 00:40:15,750 kontekstində təyinat. 773 00:40:15,750 --> 00:40:21,400 Nəhayət, biz yalnız demək, sıfır başlamaq İndi saniyə, biz səs var? 774 00:40:21,400 --> 00:40:22,400 >> [Zəng] 775 00:40:22,400 --> 00:40:24,980 >> HUGH Zabriskie: Burada getmək. 776 00:40:24,980 --> 00:40:25,940 Bu, sadəcə bir sine dalğa var. 777 00:40:25,940 --> 00:40:26,440 Sərin, OK. 778 00:40:26,440 --> 00:40:28,274 Və sonra biz bu dayandırmaq lazımdır. 779 00:40:28,274 --> 00:40:30,520 >> Auditoriya: etdi ki, Əlaqə gəlir? 780 00:40:30,520 --> 00:40:31,250 >> HUGH Zabriskie: Əlaqə? 781 00:40:31,250 --> 00:40:32,458 Oh, yəqin ki, bizim mikrofonlar. 782 00:40:32,458 --> 00:40:34,221 783 00:40:34,221 --> 00:40:35,470 Siz bunu necə Belə ki, Bəli, ki, var. 784 00:40:35,470 --> 00:40:37,261 Və həqiqətən, Mən, əgər Bu, saxlanılır çalışan 785 00:40:37,261 --> 00:40:39,540 tezliyi ola bilər çalışan kimi dəyəri, 786 00:40:39,540 --> 00:40:43,320 belə ki, ətrafında oynamaq üçün fun bir şey. 787 00:40:43,320 --> 00:40:44,930 Cool. 788 00:40:44,930 --> 00:40:46,600 Həmişə təqdim bir sevimli biri. 789 00:40:46,600 --> 00:40:48,792 >> SAM GREEN: Biz etdi Biz bu barədə idi mi? 790 00:40:48,792 --> 00:40:50,500 HUGH Zabriskie: Bəli, ki, bir murdar biri. 791 00:40:50,500 --> 00:40:53,249 Belə ki, bufer loading-- Mən göstərmək lazımdır çox sonunda nümunə. 792 00:40:53,249 --> 00:40:55,090 Ki, bir MP3 yükləmə oldu. 793 00:40:55,090 --> 00:40:58,880 Və mikrofon, yalnız bir funksiyasından istifadə ) (Navigator.getUserMedia adlı 794 00:40:58,880 --> 00:41:03,240 istifadəçi girişi tələb etmək ki, məlumat üçün mikrofon. 795 00:41:03,240 --> 00:41:05,610 >> Burada filtreleme, mən lazımdır yalnız bu hərəkət saxlamaq. 796 00:41:05,610 --> 00:41:08,600 Bu, olduqca yüksək səviyyədə lakin filtreler yalnız sizə imkan verir 797 00:41:08,600 --> 00:41:16,154 >> [Səs siqnalı] 798 00:41:16,154 --> 00:41:18,320 Filtering də sizə imkan verir çəhrayı kimi şeylər yaratmaq 799 00:41:18,320 --> 00:41:20,050 səs-küy, qəhvəyi səs-küy, ağ küy. 800 00:41:20,050 --> 00:41:24,330 Siz təmiz səs-küy, yaratmaq istəyirsinizsə hansı bəzi insanlar ilə ətrafında mess üçün sevirəm 801 00:41:24,330 --> 00:41:27,490 Web Audio istifadə edə bilərsiniz filtreleme bunu. 802 00:41:27,490 --> 00:41:30,039 >> Audio Panning-- belə təsəvvür Bir oyun yazılı edirsinizsə 803 00:41:30,039 --> 00:41:32,330 və səs istəyirəm bu kimi, gələn kimi səs, 804 00:41:32,330 --> 00:41:36,090 ekran arasında atəş, audio turning istifadə edə bilərsiniz 805 00:41:36,090 --> 00:41:39,770 konus bu cür yaratmaq, olan olduqca mathy var like--, 806 00:41:39,770 --> 00:41:41,850 lakin bu, həqiqətən, həqiqətən, var cool bu iş almaq, 807 00:41:41,850 --> 00:41:44,500 və yaxşı var bu barədə Dərsliklər mən sizə göndərə bilərsiniz. 808 00:41:44,500 --> 00:41:46,400 Ümumiyyətlə, siz cür bilərsiniz səs yaratmaq 809 00:41:46,400 --> 00:41:50,480 3D şəkildə gedən bir şey. 810 00:41:50,480 --> 00:41:57,350 Bir DJ maraq varsa, siz qarışdırma başlamaq və fading mahnılar keçir. 811 00:41:57,350 --> 00:42:01,260 >> Bu yalnız bir çox əsas indeksi, mən əvvəl idi əsasən nə. 812 00:42:01,260 --> 00:42:06,140 Bu həcmi müəyyən oscillator, belə ki, biz oscillator yaratmaq 813 00:42:06,140 --> 00:42:07,380 olan waveform yaradır. 814 00:42:07,380 --> 00:42:09,940 Biz GainNode yaratmaq Bizim tezliyi, 815 00:42:09,940 --> 00:42:14,170 və sonra oscillator əlaqə Sonra əsasən dəyişikliklər GainNode, 816 00:42:14,170 --> 00:42:16,760 nə qədər siqnal vasitəsilə yol verilir. 817 00:42:16,760 --> 00:42:20,467 Lakin, həqiqətən, bir digital var şey, yeah izlersin daha belə. 818 00:42:20,467 --> 00:42:23,550 Bu, həqiqətən neler deyil, lakin real həyatda olur 819 00:42:23,550 --> 00:42:24,393 bir mənfəət ilə. 820 00:42:24,393 --> 00:42:27,258 >> Auditoriya: --quantization həcmi parametri? 821 00:42:27,258 --> 00:42:28,174 HUGH Zabriskie: Bağışlayın? 822 00:42:28,174 --> 00:42:30,360 Auditoriya: A quantized həcmi parametri? 823 00:42:30,360 --> 00:42:31,840 HUGH Zabriskie: Bəli. 824 00:42:31,840 --> 00:42:34,620 Və bu mən həqiqətən deyiləm bir şey mənim bilik də əskik, 825 00:42:34,620 --> 00:42:38,010 necə gəlir bir digital səviyyədə işləyir. 826 00:42:38,010 --> 00:42:40,140 Mən faktiki bilirik siqnalları, bu əsasən 827 00:42:40,140 --> 00:42:45,120 nəzarət nə qədər siz etdiyiniz siqnal qüvvətləndirici. 828 00:42:45,120 --> 00:42:47,017 Belə ki, Bəli. 829 00:42:47,017 --> 00:42:50,100 Mən sizə haqqında daha ətraflı məlumat göndərmək lazımdır Mən, həqiqətən, maraqlı olardı, çünki 830 00:42:50,100 --> 00:42:51,099 ki, haqqında daha çox bilmək. 831 00:42:51,099 --> 00:42:54,090 Lakin əsasən parametrləri bir fold-- ki, var 832 00:42:54,090 --> 00:42:59,690 Qaraçuxurlu signal-- və sıfır heç bir siqnal, və ya hər hansı bir səs eşitmək deyil. 833 00:42:59,690 --> 00:43:03,150 Biz ki, çünki demo vaxt keçmək lazımdır Mən əvvəl idi əsasən budur. 834 00:43:03,150 --> 00:43:07,630 Və yenə, Context.Destination audio təyinat node edir. 835 00:43:07,630 --> 00:43:08,360 Awesome, OK. 836 00:43:08,360 --> 00:43:10,470 >> Beləliklə, mən tez iki demoları gedirəm. 837 00:43:10,470 --> 00:43:11,760 Necə ki, biz vaxtında edirik? 838 00:43:11,760 --> 00:43:12,640 >> HOPARLÖR 1: 10 dəqiqə. 839 00:43:12,640 --> 00:43:13,130 >> HUGH Zabriskie: 10 dəqiqə? 840 00:43:13,130 --> 00:43:13,630 Great! 841 00:43:13,630 --> 00:43:14,320 Awesome. 842 00:43:14,320 --> 00:43:19,010 >> Beləliklə, mən gedirəm birinci ki, My Favorite Song deyirlər yoxdur. 843 00:43:19,010 --> 00:43:22,410 Belə ki, bu yalnız bir deyil az HTML JavaScript. 844 00:43:22,410 --> 00:43:25,510 Biz iki düymələri olacaq səhifə mənim sevimli mahnı oynamaq 845 00:43:25,510 --> 00:43:29,192 və mənim sevimli mahnı dayandırmaq. 846 00:43:29,192 --> 00:43:30,180 Mən bu dəyişdirmək lazımdır. 847 00:43:30,180 --> 00:43:32,110 >> Auditoriya: mikrofon əhatə edir. 848 00:43:32,110 --> 00:43:33,430 >> HUGH Zabriskie: Bəli. 849 00:43:33,430 --> 00:43:36,300 Mən burada yüklü sonra, basically-- bir script 850 00:43:36,300 --> 00:43:38,520 və bu, həqiqətən faydalı bir MP3 yüklənməsi üçün, 851 00:43:38,520 --> 00:43:41,820 belə ki, bu, yalnız edir Daha sürətli MP3s yol loading. 852 00:43:41,820 --> 00:43:44,180 Bu əsasən yalnız bir banderol var. 853 00:43:44,180 --> 00:43:48,737 Bu, sadəcə prosesi edir daha sürətli MP3s yükləmə, 854 00:43:48,737 --> 00:43:51,570 başqa, HTTP sorğu istifadə etdiyiniz cür biz nə etdiklərinizi kimi 855 00:43:51,570 --> 00:43:53,950 Server ilə müəyyən cari parça. 856 00:43:53,950 --> 00:43:55,950 Bu, həqiqətən çirkin siz bunu istəmirəm. 857 00:43:55,950 --> 00:44:04,110 >> Belə ki, bu oğlan, Boris SMUs, həqiqətən yazdı BufferLoader adlı faydalı kiçik vasitədir. 858 00:44:04,110 --> 00:44:08,780 Siz bütün keçmək sadəcə kontekstində, siz bir list-- keçmək 859 00:44:08,780 --> 00:44:11,327 və ya, Bəli, JavaScript siyahısı? 860 00:44:11,327 --> 00:44:12,160 SAM GREEN: bir sıra. 861 00:44:12,160 --> 00:44:14,201 HUGH Zabriskie: Oh, o, bir sıra, doğru. 862 00:44:14,201 --> 00:44:18,660 Bu yolları bir sıra var müxtəlif faylları. 863 00:44:18,660 --> 00:44:21,990 Və sonra bir funksiyası keçir. 864 00:44:21,990 --> 00:44:25,530 Bu söhbət callback edir asynchronous loading haqqında. 865 00:44:25,530 --> 00:44:28,720 Ki adlanacaq dolu faylları bir dəfə. 866 00:44:28,720 --> 00:44:33,780 Və funksiyası deyilir ki, fayl dolu bir perimetri kimi görür 867 00:44:33,780 --> 00:44:35,840 dolu arabellekleri bir sıra. 868 00:44:35,840 --> 00:44:37,990 Belə ki, burada baş verir. 869 00:44:37,990 --> 00:44:41,180 Əsasən, BufferList edir bir dəyər olacaq 870 00:44:41,180 --> 00:44:46,380 və ya bir sıra olacaq indeksi bu var uzunluğu bir, 871 00:44:46,380 --> 00:44:51,320 MP3 bütün yüklənmiş fayl sıfır. 872 00:44:51,320 --> 00:44:53,320 Beləliklə, mən başa zaman mən nə loading Mən sadəcə edir 873 00:44:53,320 --> 00:44:57,430 , bufer mənbəyi yaratmaq audio bufer mənbəyidir node edir. 874 00:44:57,430 --> 00:45:03,410 Növbəti addım I yük deyil tam dolu bufer kimi source.buffer 875 00:45:03,410 --> 00:45:06,740 BufferList-- olan Bu buffers-- bir çox var 876 00:45:06,740 --> 00:45:10,255 və sonra ki, audio qoşulmaq təyinat bufer. 877 00:45:10,255 --> 00:45:12,380 Belə ki, nə bu nə olacaq sadəcə MP3 qoyulur 878 00:45:12,380 --> 00:45:15,260 düz çıxdı vasitəsilə, və dərhal başlamaq 879 00:45:15,260 --> 00:45:18,010 Bu zəng əldə sonra. 880 00:45:18,010 --> 00:45:21,660 >> Cool, belə ki, görək bu hərəkətə baş verir. 881 00:45:21,660 --> 00:45:24,490 My [işitilemez] Burada görək. 882 00:45:24,490 --> 00:45:26,430 Mən yalnız gedirəm əsas server başlamaq. 883 00:45:26,430 --> 00:45:28,660 Ki, bir şey var ki, Siz əgər nə etmək lazımdır 884 00:45:28,660 --> 00:45:32,490 loading faylları üçün sorğu edilməsi. 885 00:45:32,490 --> 00:45:34,140 Mən əsas server başlamaq üçün gedirəm. 886 00:45:34,140 --> 00:45:38,200 Bu əsasən bütün edir İndi bir xətt pset, 887 00:45:38,200 --> 00:45:43,930 lakin bu, yalnız başlayan port 80/80 bir server. 888 00:45:43,930 --> 00:45:47,300 Beləliklə, biz burada artıq getmək, biz 80/80 yüklemek üçün gedir, 889 00:45:47,300 --> 00:45:49,110 biz mənim sevimli mahnı getmək olacaq. 890 00:45:49,110 --> 00:45:51,660 Mən hit əgər Belə ki, "Play my İndi sevimli mahnı ", 891 00:45:51,660 --> 00:45:53,964 yüklemek olacaq mənim Sevimli mahnı və pseudocode oynamaq 892 00:45:53,964 --> 00:45:55,880 FAST IN EAGLES, "HƏYAT - [MUSIC  LANE "] 893 00:45:55,880 --> 00:46:00,490 Hansı ildə "Life olmaq olur Eagles tərəfindən Fast Lane ". 894 00:46:00,490 --> 00:46:06,346 İndi Stop "hit bilər mənim Sevimli mahnı "və replay. 895 00:46:06,346 --> 00:46:09,160 >> FAST IN EAGLES, "HƏYAT - [MUSIC  LANE "] 896 00:46:09,160 --> 00:46:18,340 >> Mən, çünki təsəlli üzərində getmək əgər Mən burada qlobal dəyişən istifadə 897 00:46:18,340 --> 00:46:23,390 həqiqətən, bu dəyər onu takip İndi konsolda tanınır. 898 00:46:23,390 --> 00:46:25,160 Belə ki, bu, mənim üçün avtomatik yaradır. 899 00:46:25,160 --> 00:46:29,991 Belə ki, indi oynayan nə var, və mən sadəcə) (source.stop zəng edə bilərsiniz 900 00:46:29,991 --> 00:46:30,490 ki,. 901 00:46:30,490 --> 00:46:34,930 902 00:46:34,930 --> 00:46:35,860 Yaxşı, siz nə bilirik? 903 00:46:35,860 --> 00:46:39,760 Məhz belə uşaqlar eşitmişəm bu song-- bu mahnı tanımaq bilər. 904 00:46:39,760 --> 00:46:41,801 >> [MUSIC - Rick Astley, "Never Gonna VERİR  YOU UP "] 905 00:46:41,801 --> 00:46:42,299 906 00:46:42,299 --> 00:46:44,215 FAST IN EAGLES, "HƏYAT - [MUSIC  LANE "] 907 00:46:44,215 --> 00:46:46,195 Biz indi bütün Rickrolled etdik. 908 00:46:46,195 --> 00:46:50,155 OK, böyük, hərəkət. 909 00:46:50,155 --> 00:46:51,160 Cool. 910 00:46:51,160 --> 00:46:54,554 Belə ki, bu əsasən bir nümunəsidir yalnız bir MP3 yükləyə bilər necə fayl 911 00:46:54,554 --> 00:46:56,470 FAST IN EAGLES, "HƏYAT - [MUSIC  LANE "] 912 00:46:56,470 --> 00:46:59,590 --and oynamaq və dayandırmaq və başlamaq. 913 00:46:59,590 --> 00:47:03,008 Mən daha çox edə bilərdi [işitilemez] 914 00:47:03,008 --> 00:47:07,570 >> Mən edəcəyik son biridir Mən [işitilemez] sizə göstərmək lazımdır. 915 00:47:07,570 --> 00:47:18,070 >> [MUSIC PLAYING] 916 00:47:18,070 --> 00:47:21,800 >> Bu kimi ogg.wave.mp3 var. 917 00:47:21,800 --> 00:47:26,450 Mən düzgün yadda əgər mən hesab edirəm ki, Mən M4A bəzi məsələlər daxil etdik 918 00:47:26,450 --> 00:47:27,721 lakin mən bu barədə əmin deyiləm. 919 00:47:27,721 --> 00:47:28,470 Mən hesab edirəm ki, mp3.wave-- 920 00:47:28,470 --> 00:47:28,930 921 00:47:28,930 --> 00:47:30,971 >> [MUSIC - Rick Astley, "Never Gonna VERİR  YOU UP "] 922 00:47:30,971 --> 00:47:35,930 923 00:47:35,930 --> 00:47:36,500 >> OK, böyük. 924 00:47:36,500 --> 00:47:37,625 Mən demişəm ki, lazım deyil. 925 00:47:37,625 --> 00:47:40,570 Salam, hər halda. 926 00:47:40,570 --> 00:47:43,430 927 00:47:43,430 --> 00:47:45,490 Beləliklə, biz bu açıq. 928 00:47:45,490 --> 00:47:52,320 Belə ki, indi mən bütün Mən əsasən yaradılmış deyil musiqi yaratmaq üçün əsas syntax. 929 00:47:52,320 --> 00:47:57,610 Mən kimi bir şey Belə ki, G4 əlavə 1 2 ki, nə o deməkdir ki, 930 00:47:57,610 --> 00:48:00,950 , piano qeyd G4 əlavə olan dördüncü G 931 00:48:00,950 --> 00:48:02,680 alt fortepiano up. 932 00:48:02,680 --> 00:48:05,930 Belə ki, bu MIDI cür danışıram, belə musiqi based olanlar üçün, 933 00:48:05,930 --> 00:48:07,860 Bu yalnız MIDI qeydlər. 934 00:48:07,860 --> 00:48:10,090 >> Auditoriya: Bu G var Middle C, sağ? 935 00:48:10,090 --> 00:48:11,840 >> HUGH Zabriskie: Bu G deyil Middle C yuxarıda, doğru. 936 00:48:11,840 --> 00:48:12,470 >> Auditoriya: Above Middle C. 937 00:48:12,470 --> 00:48:13,345 >> HUGH Zabriskie: Bəli. 938 00:48:13,345 --> 00:48:14,340 Əslində, bəli. 939 00:48:14,340 --> 00:48:16,131 Mən, həqiqətən, qəbul edirəm bir [işitilemez], 940 00:48:16,131 --> 00:48:18,860 bu ki, yuxarıda bir oktava ola bilər. 941 00:48:18,860 --> 00:48:20,070 Belə ki, görək. 942 00:48:20,070 --> 00:48:21,152 Mən Play-- hit əgər 943 00:48:21,152 --> 00:48:22,110 [Təkrar PIANO Qeyd] 944 00:48:22,110 --> 00:48:23,200 ki, eşitmək gedir --we're. 945 00:48:23,200 --> 00:48:25,700 fikir fəaliyyət ki, yalnız bir command line olduğu kimi 946 00:48:25,700 --> 00:48:27,510 mən və aşağı getmək əgər mənim klaviatura, siz 947 00:48:27,510 --> 00:48:31,550 Əvvəlki geri bilərsiniz olduqca faydalı olan əmr edir. 948 00:48:31,550 --> 00:48:35,136 Və aşağıdakı musiqi mənim siyahısı, olan bütün loop çalışan. 949 00:48:35,136 --> 00:48:38,260 >> Auditoriya: Siz fərz edilmişdir Ki, klaviatura 88-key, sağ? 950 00:48:38,260 --> 00:48:41,051 >> HUGH Zabriskie: sual idi, Mən 88-key klaviatura fərz edirəm, 951 00:48:41,051 --> 00:48:41,990 və bəli, mən. 952 00:48:41,990 --> 00:48:45,030 Nə etdim mən əsasən 88 nümunə aldı 953 00:48:45,030 --> 00:48:46,970 fortepiano, hər bir qeyd üçün bir. 954 00:48:46,970 --> 00:48:49,180 Və belə ki, hər dəfə sizə İndi bir qeyd eşitmək, 955 00:48:49,180 --> 00:48:57,550 həqiqətən görünür ki, bir loop var bu loop ifa olur like-- 956 00:48:57,550 --> 00:49:00,120 belə ki, hər qeyd üçün bu çalışır. 957 00:49:00,120 --> 00:49:02,860 Nə olar, mən var daha bufer yaratmaq 958 00:49:02,860 --> 00:49:06,010 Mən həcmi müəyyən bir qazanc node yaratmaq. 959 00:49:06,010 --> 00:49:08,240 Bu yalnız bir həqiqətən deyərək mürəkkəb yol 960 00:49:08,240 --> 00:49:10,550 bir source.buffer da bufer saxlamayın. 961 00:49:10,550 --> 00:49:13,160 Mən mənfəət vermək, mən mənfəət qoşulmaq, 962 00:49:13,160 --> 00:49:15,576 mənfəət bağlıdır çıxış, və sonra mən oynamaq. 963 00:49:15,576 --> 00:49:20,735 Belə ki, proses növüdür bufer mənbə alaraq. 964 00:49:20,735 --> 00:49:24,820 >> Auditoriya: Əgər həqiqətən bilər quru səs və nəm [Işitilemez] etmək? 965 00:49:24,820 --> 00:49:26,260 >> HUGH Zabriskie: Siz, evet. 966 00:49:26,260 --> 00:49:29,260 Yenidən verb var var gecikmə, təhrif. 967 00:49:29,260 --> 00:49:33,260 Siz əsasən bir şey qoya bilər of-- yaxşı sendviç arasında, 968 00:49:33,260 --> 00:49:37,660 boru kəməri, daha yaxşı bir məcaz var ancaq heç bir şey əlavə edə bilərsiniz. 969 00:49:37,660 --> 00:49:38,200 Cool. 970 00:49:38,200 --> 00:49:40,280 >> Belə ki, demo bitirmək lazımdır burada hissi vermək 971 00:49:40,280 --> 00:49:46,390 dəfə yalnız şəffaf sayı bütün bir dəfə funksiyası çalıştırabilirsiniz. 972 00:49:46,390 --> 00:49:49,280 Mən bu aradan qaldırılması üçün gedirəm. 973 00:49:49,280 --> 00:49:59,110 Mən bir generator yaratmaq üçün gedirəm əsasən bu həqiqətən does-- nə 974 00:49:59,110 --> 00:50:04,220 mürəkkəb sintaksis cür, lakin bu Tez qeydlər yaratmaq üçün gedir, 975 00:50:04,220 --> 00:50:06,601 və yalnız oynayan başlamaq Onlara onlara qiymətləndirir kimi. 976 00:50:06,601 --> 00:50:07,392 [Interposing PIANO] 977 00:50:07,392 --> 00:50:10,990 978 00:50:10,990 --> 00:50:12,817 >> Beləliklə, biz yalnız burada bir az musiqi edə bilərsiniz. 979 00:50:12,817 --> 00:50:13,608 [Interposing PIANO] 980 00:50:13,608 --> 00:50:39,570 981 00:50:39,570 --> 00:50:41,470 >> Belə ki, nə bu komanda məsələn, yoxdur 982 00:50:41,470 --> 00:50:46,910 Bu həmin üç qeyd edir piano və sonra B3 onları qoyur. 983 00:50:46,910 --> 00:50:48,660 Bu syntax edə bilər bir az daha mənada 984 00:50:48,660 --> 00:50:50,590 bir olanlar Burada musiqi fon. 985 00:50:50,590 --> 00:50:55,180 986 00:50:55,180 --> 00:50:56,551 >> Mən bir zərbə nağara əlavə edə bilərsiniz. 987 00:50:56,551 --> 00:50:57,050 Bacararam-- 988 00:50:57,050 --> 00:50:58,048 >> [Interposing INSTRUMENTS] 989 00:50:58,048 --> 00:50:59,256 >> --just ilə ətrafında oynamaq. 990 00:50:59,256 --> 00:51:12,519 991 00:51:12,519 --> 00:51:13,474 >> Belə ki, make-- bilər 992 00:51:13,474 --> 00:51:14,515 [Interposing INSTRUMENTS] 993 00:51:14,515 --> 00:51:15,513 Ki, bir az daha annoying var. 994 00:51:15,513 --> 00:51:16,554 [Interposing INSTRUMENTS] 995 00:51:16,554 --> 00:51:26,491 996 00:51:26,491 --> 00:51:30,981 >> Ki, təsadüfi bir quru cymbal edir, belə ki, 16% ilə hər 16 qeyd haqqında 997 00:51:30,981 --> 00:51:31,481 [Işitilemez]. 998 00:51:31,481 --> 00:51:32,522 >> [Interposing INSTRUMENTS] 999 00:51:32,522 --> 00:51:40,962 1000 00:51:40,962 --> 00:51:50,400 >> Bəli, belə bir şəkildə bu Bu 4 həmişə çalışır ki: 4. 1001 00:51:50,400 --> 00:51:51,441 [Interposing INSTRUMENTS] 1002 00:51:51,441 --> 00:52:06,910 1003 00:52:06,910 --> 00:52:10,902 >> Bəli, dörd, və 16/8 belə. 1004 00:52:10,902 --> 00:52:14,851 1005 00:52:14,851 --> 00:52:15,892 [Interposing INSTRUMENTS] 1006 00:52:15,892 --> 00:52:27,970 1007 00:52:27,970 --> 00:52:33,780 >> Belə ki, orta hesabla, 60% almaq 16-cı qeydlər edib. 1008 00:52:33,780 --> 00:52:35,990 >> Zaten, bu, yalnız idi növ off göstərmək üçün 1009 00:52:35,990 --> 00:52:39,780 Siz ola bilər bəzi şeyləri Web Audio API ilə qurmaq. 1010 00:52:39,780 --> 00:52:43,840 Bu, həqiqətən, sürətli, həqiqətən güclü və sərin şeyi bir çox edə bilərsiniz 1011 00:52:43,840 --> 00:52:44,340 bu. 1012 00:52:44,340 --> 00:52:51,260 Belə ki, yenə, siz hər hansı bir sualınız, E-poçt özüm Hugh-- və ya Sam, 1013 00:52:51,260 --> 00:52:55,869 və vicdanla, Google var yaxşı resursları bir ton. 1014 00:52:55,869 --> 00:52:56,660 Hər hansı bir son suallar? 1015 00:52:56,660 --> 00:52:57,970 Bəli. 1016 00:52:57,970 --> 00:53:00,790 >> Auditoriya: Belə ki, əldə edə bilərsiniz mikrofon. 1017 00:53:00,790 --> 00:53:03,089 Siz istəyirdi əgər nə Daha yaxşı mikrofon istifadə? 1018 00:53:03,089 --> 00:53:05,380 HUGH Zabriskie: Siz istəyirdi daha yaxşı mikrofon istifadə etmək olar? 1019 00:53:05,380 --> 00:53:11,320 Belə ki, yenə bu hissəsi Chrome arasında abstraksiya 1020 00:53:11,320 --> 00:53:12,950 və kompüter istirahət. 1021 00:53:12,950 --> 00:53:18,950 Onun vasitəsilə mövcud halda bir API, Web MIDI API kimi, 1022 00:53:18,950 --> 00:53:22,030 Siz yəqin ki, bəzi hacks tapa bilər, lakin ümumiyyətlə kimi mümkün deyil. 1023 00:53:22,030 --> 00:53:25,300 >> SAM GREEN: Siz also-- bilər bütün Chrome bilir 1024 00:53:25,300 --> 00:53:28,820 nə u mənim mikrofon və bu çatmaz. 1025 00:53:28,820 --> 00:53:33,410 Bir mikrofon əgər siz ola bilər, belə ki, kompüter default mikrofon kimi müəyyən, 1026 00:53:33,410 --> 00:53:35,990 Siz bu yolu gedə bilər və yəqin ki, iş olardı. 1027 00:53:35,990 --> 00:53:37,490 HUGH Zabriskie: Bu yaxşı bir nöqtə var. 1028 00:53:37,490 --> 00:53:39,656 Hesab edirəm ki, cəhd, lakin heç etdik Siz cür edə bilər 1029 00:53:39,656 --> 00:53:45,700 of-- giriş natiq yönlendirme əgər, Bəli, bunu edə bilər. 1030 00:53:45,700 --> 00:53:48,360 >> Hər hansı bir son suallar? 1031 00:53:48,360 --> 00:53:49,340 Cool. 1032 00:53:49,340 --> 00:53:51,680 Yaxşı uşaqlar təşəkkür edirəm izləmək üçün bu qədər. 1033 00:53:51,680 --> 00:53:52,199 Mən Hugh edirəm. 1034 00:53:52,199 --> 00:53:52,990 SAM GREEN: I Sam edirəm. 1035 00:53:52,990 --> 00:53:55,410 HUGH Zabriskie: Bu CS50 edir. 1036 00:53:55,410 --> 00:53:56,767