1 00:00:00,000 --> 00:00:05,900 2 00:00:05,900 --> 00:00:07,170 >> SAM سبز: سلام بر همه. 3 00:00:07,170 --> 00:00:08,640 به سمینار ما خوش آمدید. 4 00:00:08,640 --> 00:00:10,009 اسم من سم است. 5 00:00:10,009 --> 00:00:11,050 HUGH ZABRISKIE: من هیو هستم. 6 00:00:11,050 --> 00:00:17,420 SAM سبز: و ما قصد داریم به بحث امروز در مورد جاوا اسکریپت و API وب صوتی. 7 00:00:17,420 --> 00:00:21,180 فقط برای شروع، این یک طرح کلی است از دستور کار ما برای سمینار. 8 00:00:21,180 --> 00:00:25,350 ما قصد داریم به شروع شده توسط صحبت کردن در مورد چرا شما باید علاقه مند به وب باشد 9 00:00:25,350 --> 00:00:30,130 API صوتی، چرا جاوا اسکریپت است زبانی که برای آن نیاز دارید، 10 00:00:30,130 --> 00:00:32,619 و پس از آن در مورد جاوا اسکریپت صحبت essentials-- بنابراین مانند، 11 00:00:32,619 --> 00:00:34,800 شما را از طریق برخی راه رفتن اصول اولیه زبان، 12 00:00:34,800 --> 00:00:37,290 و سپس در مورد صحبت API های صوتی در سطح بالا است. 13 00:00:37,290 --> 00:00:41,140 پس از آن، هیو در مورد برخی از صحبت از مراحل تولید صوتی 14 00:00:41,140 --> 00:00:45,509 و پس از آن نسخه ی نمایشی این ترتیب سنج عالی پروژه او ساخته شده است و به شما کد نشان می دهد. 15 00:00:45,509 --> 00:00:48,050 و پس از آن، ما هم باید برای سوال در پایان برای مردم 16 00:00:48,050 --> 00:00:49,593 که در اینجا زندگی می کنند. 17 00:00:49,593 --> 00:00:50,540 >> HUGH ZABRISKIE: داغ. 18 00:00:50,540 --> 00:00:50,990 >> SAM GREEN: داغ. 19 00:00:50,990 --> 00:00:51,383 >> HUGH ZABRISKIE: داغ. 20 00:00:51,383 --> 00:00:52,170 من خواهد شد. 21 00:00:52,170 --> 00:00:54,960 >> SAM سبز: بنابراین، چیزهایی اول اول. 22 00:00:54,960 --> 00:00:57,840 بنابراین یکی از کارهای بسیار خوبی در مورد API صوتی وب 23 00:00:57,840 --> 00:01:00,480 این است که هیچ راه اندازی مورد نیاز وجود دارد. 24 00:01:00,480 --> 00:01:04,230 که می آید به ساخته شده در ترین مرورگرهای مدرن، 25 00:01:04,230 --> 00:01:08,630 از جمله کروم، لبه، یک کل دسته از others-- همه آنهایی که 26 00:01:08,630 --> 00:01:12,650 بخش زیادی از که مردم با استفاده از امروز. 27 00:01:12,650 --> 00:01:14,807 بنابراین وجود ندارد راه اندازی، گذشته از فقط گرفتن 28 00:01:14,807 --> 00:01:16,890 یک وب سرور رفتن، برای شما برای شروع کار 29 00:01:16,890 --> 00:01:18,420 بر روی پروژه خود را، که بزرگ است. 30 00:01:18,420 --> 00:01:21,500 31 00:01:21,500 --> 00:01:24,190 >> ما توصیه می کنیم بسیار به شدت که شما در نظر 32 00:01:24,190 --> 00:01:26,530 با استفاده از Chrome برای توسعه وب جاوا اسکریپت، 33 00:01:26,530 --> 00:01:30,260 فقط به خاطر اینکه توسعه دهنده آن ابزار واقعا قوی است. 34 00:01:30,260 --> 00:01:33,220 به عنوان مثال تنها چیزی است که ما با گفتن باز کردن جاوا اسکریپت خود را 35 00:01:33,220 --> 00:01:38,600 console-- اگر شما را به کروم بروید و شما در هر صفحه وب نگاه کنید، 36 00:01:38,600 --> 00:01:43,897 و شما سمت چپ کلیک کنید بازرسی عنصر، و سپس 37 00:01:43,897 --> 00:01:46,730 شما را به این کمی کشویی رفتن در اینجا شما را بر روی کنسول و کلیک کنید، 38 00:01:46,730 --> 00:01:50,660 شما خواهید دید آنچه به نظر می رسد باز می شود تا بسیاری مانند یک فرمان را که شما 39 00:01:50,660 --> 00:01:53,720 ممکن است بر روی مک خود را در ID ببینید، و یا. 40 00:01:53,720 --> 00:01:59,260 و درست مانند آن، ما می توانیم نوع دستورات در اینجا، مانند پاک کردن، 41 00:01:59,260 --> 00:02:01,350 و دستورات دیگر مانند آن. 42 00:02:01,350 --> 00:02:04,267 ما می توانیم متغیر ایجاد کنید، به عنوان ما بعدا در جاوا اسکریپت خواهید دید. 43 00:02:04,267 --> 00:02:07,100 و به این ترتیب هر چیزی که ما می توانید انجام دهید در جاوا اسکریپت، ما می توانیم با کنسول انجام دهید، 44 00:02:07,100 --> 00:02:11,430 و این که راه فوق العاده مفید است به شروع به بازی در اطراف با رابط های برنامه کاربردی 45 00:02:11,430 --> 00:02:15,760 و گرفتن راحت با جاوا اسکریپت راست کردن خفاش. 46 00:02:15,760 --> 00:02:18,290 ندارد و راه اندازی مورد نیاز، که است که واقعا خوب است. 47 00:02:18,290 --> 00:02:18,790 خنک. 48 00:02:18,790 --> 00:02:22,064 49 00:02:22,064 --> 00:02:22,880 عالی. 50 00:02:22,880 --> 00:02:24,780 >> پس فقط یک چیز بیشتر به اضافه کنید. 51 00:02:24,780 --> 00:02:27,780 اگر شما هر گونه questions-- وجود دارد بسیاری از شما که اینجا هستید زندگی نمی کنند، 52 00:02:27,780 --> 00:02:31,232 در صورت تمایل به us-- این ایمیل آدرس ایمیل ما هستند. 53 00:02:31,232 --> 00:02:33,190 اگر سوالی دارید شما نمی خواهید از ما بخواهید، 54 00:02:33,190 --> 00:02:36,160 مانند، آه من یک اشکال در کد من، و یا چیزی 55 00:02:36,160 --> 00:02:39,270 که کمی مشخص تر، شاید برای اولین بار آن را گوگل. 56 00:02:39,270 --> 00:02:42,340 هستند بسیاری از منابع بزرگ وجود دارد در مورد API صوتی وب خارج وجود دارد. 57 00:02:42,340 --> 00:02:44,089 این واقعا خوب مستند و آن را در حال 58 00:02:44,089 --> 00:02:47,194 استفاده شده توسط یک تن از مردم در صنعت، و افرادی که فقط می 59 00:02:47,194 --> 00:02:48,610 ساخت چیزهای سرگرم کننده برای خود. 60 00:02:48,610 --> 00:02:51,306 بنابراین باید مقدار زیادی وجود داشته باشد منابع خارج وجود دارد. 61 00:02:51,306 --> 00:02:53,040 عالی. 62 00:02:53,040 --> 00:02:56,100 >> سرد، پس چرا API صوتی وب؟ 63 00:02:56,100 --> 00:02:59,840 این نمودار یک کمی است یک تکامل از راه 64 00:02:59,840 --> 00:03:04,100 صدا بر روی وب در طول زمان رشد کرده است. 65 00:03:04,100 --> 00:03:13,080 Bgsound مانند تگ HTML اصلی بود که اینترنت اکسپلورر استفاده برای حمایت از. 66 00:03:13,080 --> 00:03:16,790 این فقط برای تلفن های موبایل بسیار اساسی اجازه داده، قابلیت بسیار قوی نیست، 67 00:03:16,790 --> 00:03:19,380 و شما نمی تواند انجام تعیین توالی پیچیده، 68 00:03:19,380 --> 00:03:21,890 و یا کنترل زمانی که صدا آغاز شده و متوقف بسیار قوی. 69 00:03:21,890 --> 00:03:23,930 بنابراین، آن بود به خصوص نیست به خوبی توسعه یافته. 70 00:03:23,930 --> 00:03:27,470 بعد از آن، فلش along-- که آمد، 71 00:03:27,470 --> 00:03:31,712 من مطمئن هستم که شما بچه ها همه آشنا هستند هستم با Flash-- شاید نه چگونه کار می کند، 72 00:03:31,712 --> 00:03:32,920 اما شما قطعا آن دیده می شود. 73 00:03:32,920 --> 00:03:35,586 شما رو به روز رسانی فلش خود را پلاگین، تمام این نوع از مسائل، 74 00:03:35,586 --> 00:03:40,110 و که قطعا گسترش محدوده از قابلیت های که در دسترس بود. 75 00:03:40,110 --> 00:03:45,370 اما ساخت کاربران نصب یک پلاگین در است 76 00:03:45,370 --> 00:03:48,480 یک نقطه ضعف از جمله فلش به در برنامه خود، درست است؟ 77 00:03:48,480 --> 00:03:52,410 چون شما وابسته به ما کاربران رفتن و پیدا کردن این پلاگین، 78 00:03:52,410 --> 00:03:54,660 و احتمالا تبدیل خاموش توسط این گام اضافی 79 00:03:54,660 --> 00:03:56,640 آنها را به استفاده از نرم افزار خود را. 80 00:03:56,640 --> 00:04:01,270 و پس از آن وجود دارد می تواند به روز رسانی است که به شما تمام نرم افزار خود را شکستن، 81 00:04:01,270 --> 00:04:03,880 و آن را پایان می رسد تا یک کابوس برای توسعه دهنده، TOO. 82 00:04:03,880 --> 00:04:06,230 به طوری که یک مانع بود. 83 00:04:06,230 --> 00:04:10,480 >> و سپس بعد از آن آمد همراه، برچسب صوتی HTML، که 84 00:04:10,480 --> 00:04:16,579 یکی از ویژگی های HTML-- مدرن تر است که قطعا برای چیزهای بسیار بیشتری مجاز 85 00:04:16,579 --> 00:04:20,050 اما حتی چیزهایی که شما می تواند انجام وجود دارد شد کمی فقط محدود 86 00:04:20,050 --> 00:04:22,730 به عنوان یک نتیجه از چیزهایی که HTML قادر بود. 87 00:04:22,730 --> 00:04:26,060 بنابراین، هنگامی که جاوا اسکریپت API، API صوتی وب، 88 00:04:26,060 --> 00:04:29,290 یک استاندارد تبدیل شد تمرین در سراسر مرورگرها، 89 00:04:29,290 --> 00:04:32,490 که واقعا گسترش مجموعه از فرصت ها برای توسعه دهندگان 90 00:04:32,490 --> 00:04:36,590 واقعا به ساختمان چیزهای جالب برای وب. 91 00:04:36,590 --> 00:04:39,220 برای یک مدت طولانی وجود داشته است ابزار واقعا قوی شده 92 00:04:39,220 --> 00:04:44,360 برای برنامه های صوتی بومی، like-- هر کس می داند GARAGEBAND، 93 00:04:44,360 --> 00:04:48,360 و پس از آن به وضوح بیشتر وجود دارد حرفه ای صوتی مخلوط برنامه های کاربردی، 94 00:04:48,360 --> 00:04:49,640 و این نوع از مسائل. 95 00:04:49,640 --> 00:04:52,690 اما وجود ندارد واقعا خوب Cloud-- نیست 96 00:04:52,690 --> 00:04:55,811 ابر، آره، من حدس می زنم پلت فرم مبتنی بر وب Cloud-- 97 00:04:55,811 --> 00:04:58,310 که توسعه دهندگان اجازه می دهد تا ساخت برنامه های کاربردی برای مردم 98 00:04:58,310 --> 00:05:00,570 به انجام اختلاط صوتی. 99 00:05:00,570 --> 00:05:03,960 و او به عنوان شما نشان می دهد بعد، API صوتی وب 100 00:05:03,960 --> 00:05:07,470 اجازه می دهد تا برای واقعا قدرتمند چیزهای اتفاق می افتد واقعا به سادگی، 101 00:05:07,470 --> 00:05:09,597 که خیلی جالب است. 102 00:05:09,597 --> 00:05:12,680 به طوری که آموزش به همین دلیل شما باید به بقیه سمینار تماشا، 103 00:05:12,680 --> 00:05:14,350 اساسا. 104 00:05:14,350 --> 00:05:17,880 >> و در حال حاضر، من قصد دارم به بحث در مورد برخی JavaScript-- عناصر فقط پایه 105 00:05:17,880 --> 00:05:20,240 از زبان، به طوری که ما می توانیم در همان صفحه باشد 106 00:05:20,240 --> 00:05:22,470 وقتی ما در مورد صحبت API کمی بعد. 107 00:05:22,470 --> 00:05:23,260 خنک. 108 00:05:23,260 --> 00:05:26,192 >> بنابراین، این خلاصه است. 109 00:05:26,192 --> 00:05:27,150 من را فراموش کرده این جا بود. 110 00:05:27,150 --> 00:05:27,510 آره. 111 00:05:27,510 --> 00:05:27,870 >> HUGH ZABRISKIE: دو اسلاید در اینجا وجود دارد. 112 00:05:27,870 --> 00:05:30,245 >> SAM سبز: این خلاصه است برخی از محدودیت 113 00:05:30,245 --> 00:05:35,220 از سوی دیگر، روش اتصال است. 114 00:05:35,220 --> 00:05:37,828 و پس از آن در حال حاضر، ما باید این چیزها. 115 00:05:37,828 --> 00:05:40,011 خنک. 116 00:05:40,011 --> 00:05:40,510 عالی. 117 00:05:40,510 --> 00:05:43,200 >> بنابراین، ملزومات جاوا اسکریپت. 118 00:05:43,200 --> 00:05:47,230 چیزهایی اول اول، وجود دارد یک تفاوت بسیار مهم 119 00:05:47,230 --> 00:05:49,940 در جاوا اسکریپت در مقابل در یک زبان مانند C، در راه 120 00:05:49,940 --> 00:05:52,050 که متغیرهای ایجاد می کند. 121 00:05:52,050 --> 00:05:55,634 بنابراین در C، ما به داشتن استفاده به نوع متغیرها، درست است؟ 122 00:05:55,634 --> 00:05:57,800 و من نوع مانند معنی نیست نوع آنها را در، منظور من نوع 123 00:05:57,800 --> 00:06:01,900 مانند آنها به معنی type-- اختصاص مانند، یک int، شناور، یک کاراکتر. 124 00:06:01,900 --> 00:06:05,210 در C، ما واقعا به مورد استفاده قرار گرفت نیاز به ایجاد یک متغیر 125 00:06:05,210 --> 00:06:09,690 و سپس به آن نوع برای چوب تمام مدت که ما با استفاده از آن متغیر است. 126 00:06:09,690 --> 00:06:13,990 و این است که لزوما بدتر نیست، اما احتمالا سخت تر استفاده کنید. 127 00:06:13,990 --> 00:06:16,190 یکی از ویژگی های سرد از جاوا اسکریپت است 128 00:06:16,190 --> 00:06:19,740 که متغیرها آنچه به نام "پویا تایپ"، که 129 00:06:19,740 --> 00:06:22,500 بدان معنی است که من می توانم یک ایجاد متغیر با نحو، 130 00:06:22,500 --> 00:06:25,800 VARX برابر با 5، برای مثال. 131 00:06:25,800 --> 00:06:27,790 که در اصل ایجاد یک عدد صحیح variable-- 132 00:06:27,790 --> 00:06:29,870 درست در زیر هود somewhere-- اما من 133 00:06:29,870 --> 00:06:33,040 می توانید آن متغیر تغییر برای اشاره به یک رشته 134 00:06:33,040 --> 00:06:35,820 بدون انجام کاری مانند ایجاد یک متغیر جدید. 135 00:06:35,820 --> 00:06:37,880 من لازم نیست که به نگرانی در در مورد تغییر نوع است. 136 00:06:37,880 --> 00:06:45,440 جاوا اسکریپت می داند که نوع است تغییر، و که به صورت پویا اتفاق می افتد. 137 00:06:45,440 --> 00:06:48,510 >> بنابراین، مزایای وجود دارد و اشکالاتی از آن، 138 00:06:48,510 --> 00:06:51,250 هر کسی که به کار در جاوا اسکریپت در حالی که برای ممکن است بدانید. 139 00:06:51,250 --> 00:06:53,600 بار زمانی که وجود دارد شما ممکن است به طور تصادفی 140 00:06:53,600 --> 00:06:57,720 تغییر نوع یک متغیر و که نوع تغییر رسیدگی نمی کند، 141 00:06:57,720 --> 00:07:01,120 و سپس جاوا اسکریپت خود را می توانید crash-- و یا یک استثنا 142 00:07:01,120 --> 00:07:06,070 پرتاب می شود، چرا که شما باید نوع اشتباه زمانی که شما انتظار یک نوع. 143 00:07:06,070 --> 00:07:07,040 خنک. 144 00:07:07,040 --> 00:07:11,470 >> بنابراین، scoping-- که مانند است، اگر ما به یاد داشته باشید هفته در اوایل دوره، 145 00:07:11,470 --> 00:07:15,420 اشاره دارد که چگونه یک متغیر قابل مشاهده است و در چه منطقه ای از کد. 146 00:07:15,420 --> 00:07:18,400 همه از آن به نظر می رسد بسیار شبیه به راه آن در C. به نظر می رسد 147 00:07:18,400 --> 00:07:24,755 بنابراین متغیرهای مورد نظر به طور کلی در آکولاد در یک تابع، 148 00:07:24,755 --> 00:07:27,005 و پس از آن نیز وجود دارد متغیر در سطح جهانی محدود شده است که 149 00:07:27,005 --> 00:07:29,171 are-- اگر شما یک متغیر ارسال در خارج از یک تابع، 150 00:07:29,171 --> 00:07:31,790 آن در کل متن قابل مشاهده خواهد بود. 151 00:07:31,790 --> 00:07:35,840 >> یکی از تفاوت های بین جاوا اسکریپت و C به طور خاص، 152 00:07:35,840 --> 00:07:40,280 این است که اگر شما یک جهانی اعلام در هر نقطه متغیر در یک فایل متنی 153 00:07:40,280 --> 00:07:43,324 آن را در هر تابع قابل مشاهده است که در آن فایل متنی. 154 00:07:43,324 --> 00:07:44,240 این درست است، درست است؟ 155 00:07:44,240 --> 00:07:46,330 >> HUGH ZABRISKIE: بله. 156 00:07:46,330 --> 00:07:49,120 >> SAM سبز: پس این نیز کمی کمی بد بو در مقایسه با C، 157 00:07:49,120 --> 00:07:52,660 جایی که ما همیشه به حال به ما تعاریف متغیر بالا مکان 158 00:07:52,660 --> 00:07:53,770 آنها استفاده شد. 159 00:07:53,770 --> 00:07:57,957 این یک قاعده است که اجرا نمی دیگر، بنابراین، کمی متفاوت است. 160 00:07:57,957 --> 00:08:00,540 و دوباره فقط به مجددا تاکید، جهانی در برابر variables-- محلی 161 00:08:00,540 --> 00:08:03,457 بسیار شبیه به C. شما می تواند دو متغیر با همین نام، 162 00:08:03,457 --> 00:08:06,540 و یکی از نام خود را سایه می شود توسط یک متغیر محلی اگر یکی از آنها 163 00:08:06,540 --> 00:08:07,546 جهانی بود. 164 00:08:07,546 --> 00:08:09,420 نوع بنابراین، مشابه مشکلاتی که برخی از شما 165 00:08:09,420 --> 00:08:11,920 ممکن است به برخی از اجرا در از مشکل خود را مجموعه تا کنون. 166 00:08:11,920 --> 00:08:14,450 سرد، به طوری که متغیرها. 167 00:08:14,450 --> 00:08:20,310 >> کنترل جریان، به این معنی مانند، اگر-else-- stuff-- منطقی و حلقه. 168 00:08:20,310 --> 00:08:24,510 بنابراین برای شروع با، این چیزی است که اگر دیگری، گفته هایی از قبیل در جاوا اسکریپت است. 169 00:08:24,510 --> 00:08:29,750 قرار دادن چیزهای مختلف در خطوط مهم نیست. 170 00:08:29,750 --> 00:08:34,409 این فقط یکی از قراردادهای برای راه کد ساختار ما. 171 00:08:34,409 --> 00:08:38,634 درست مانند C، ما یک "اگر"، بیانیه ای پرانتز. 172 00:08:38,634 --> 00:08:40,840 173 00:08:40,840 --> 00:08:42,090 این چیزی است که من به معنای نیست. 174 00:08:42,090 --> 00:08:44,860 175 00:08:44,860 --> 00:08:45,550 من دوباره آن را انجام داد. 176 00:08:45,550 --> 00:08:46,841 >> HUGH ZABRISKIE: تلاش برای خروج؟ 177 00:08:46,841 --> 00:08:49,770 SAM سبز: نه، من تنها در تلاش برای بزرگنمایی شود. 178 00:08:49,770 --> 00:08:50,660 مهم نیست. 179 00:08:50,660 --> 00:08:54,730 180 00:08:54,730 --> 00:08:59,370 >> بنابراین، ما باید یک "اگر" بیانیه و ما یک شرایط در داخل از آن 181 00:08:59,370 --> 00:09:03,130 که ارزیابی به درست یا غلط، و که تعیین اینکه آیا یا نه 182 00:09:03,130 --> 00:09:04,510 ما را وارد کنید که بلوک کد است. 183 00:09:04,510 --> 00:09:09,860 و به همین ترتیب، ما باید دیگری اگر، و یک else، درست مثل ما به در C. استفاده 184 00:09:09,860 --> 00:09:14,010 >> شما همچنین باید خیلی راحت باشد حق کردن خفاش با حلقه، 185 00:09:14,010 --> 00:09:16,440 چرا که آنها نیز نگاه بسیار شبیه C به نظر می رسد. 186 00:09:16,440 --> 00:09:19,600 اما شما دوباره متوجه خواهید شد که ما ، به جای INT initializations، 187 00:09:19,600 --> 00:09:22,570 ما initializations VAR. 188 00:09:22,570 --> 00:09:24,650 و من حدس می زنم شما مراقب باشید به 189 00:09:24,650 --> 00:09:28,460 مطمئن شوید که شما ارزش تغییر دهید از من از نوع int به یک رشته، 190 00:09:28,460 --> 00:09:31,780 برای مثال، به دلیل که رفتن به باعث رفتار عجیب و غریب شما ممکن است 191 00:09:31,780 --> 00:09:32,280 انتظار. 192 00:09:32,280 --> 00:09:35,750 اما این باید نگاه بسیار آشنا، و همچنین. 193 00:09:35,750 --> 00:09:39,460 >> پس این است که همه چیز شروع به یک کمی دیوانه در جاوا اسکریپت 194 00:09:39,460 --> 00:09:44,920 برای کسی که در حال رفتن از پس زمینه C. توابع وجود دارد 195 00:09:44,920 --> 00:09:48,070 در جاوا اسکریپت، و یک راه وجود دارد اعلام یک تابع است که به نظر می رسد 196 00:09:48,070 --> 00:09:50,361 مرتب کردن بر اساس شبیه به C و پس از آن یکی دیگر وجود دارد که 197 00:09:50,361 --> 00:09:52,450 به نظر می رسد نوع متفاوت است. 198 00:09:52,450 --> 00:09:54,930 >> نسخه اول، که ما در اینجا می توانید ببینید، 199 00:09:54,930 --> 00:09:59,260 نوع C مانند، که در آن ما می گویند، این یک تابع باشد، 200 00:09:59,260 --> 00:10:01,490 آن یک نام را، به تعدادی از استدلال، 201 00:10:01,490 --> 00:10:05,150 و سپس محتویات از تابع به داخل آن آکولاد. 202 00:10:05,150 --> 00:10:08,850 ما یک نمونه از خواهید دید مباحث مطرح شده در یک ثانیه. 203 00:10:08,850 --> 00:10:13,420 >> در حالی که در خط بعدی، ما می بینیم، آه، در اینجا یک متغیر به نام "myFunction،" 204 00:10:13,420 --> 00:10:17,546 و ما آن را برابر با این تابع thing-- عمومی است که 205 00:10:17,546 --> 00:10:19,170 به نظر نمی رسد که هر چیزی در جریان است. 206 00:10:19,170 --> 00:10:22,780 207 00:10:22,780 --> 00:10:26,080 به این دلیل که متفاوت از C است که جاوا اسکریپت 208 00:10:26,080 --> 00:10:30,040 همان چیزی است که یک زبان تابعی به نام، و یا عناصر عملکردی، که به معنی 209 00:10:30,040 --> 00:10:33,510 که توابع در واقع ارزش ها. 210 00:10:33,510 --> 00:10:39,520 و این بدان معناست که ما می توانیم مجموعه ای یک متغیر را برابر یک تابع 211 00:10:39,520 --> 00:10:43,210 و سپس حرکت آن تابع در اطراف، با تصویب آن به عنوان آرگومان، 212 00:10:43,210 --> 00:10:46,550 انجام همه نوع از مسائل می خواهم که با توابع. 213 00:10:46,550 --> 00:10:49,682 >> یک چیز دیگر به note-- توابع نوشته شده 214 00:10:49,682 --> 00:10:51,140 با تعداد معینی از استدلال است. 215 00:10:51,140 --> 00:10:54,056 ما یک مثال از یک تابع را ببینید با یک استدلال در اسلاید بعدی. 216 00:10:54,056 --> 00:10:56,720 اما جاوا اسکریپت نیست فریاد زدن در شما اگر شما سعی کنید 217 00:10:56,720 --> 00:10:59,330 به استفاده از یک تابع با شماره را اشتباه از استدلال. 218 00:10:59,330 --> 00:11:05,310 آن را فقط بهترین حالت آن به انجام، به این معنی که اگر شما منتقل می کند، 219 00:11:05,310 --> 00:11:09,410 شما یک تابع است که انتظار می رود پاسخ بحث با هیچ استدلال، که 220 00:11:09,410 --> 00:11:13,990 خواهد افتاد آن است آن را بهترین حالت آن را امتحان کنید و اجرا که کد، 221 00:11:13,990 --> 00:11:16,541 و اگر آن را در نهایت اجرا می شود به یک استثنا و یا خطا، 222 00:11:16,541 --> 00:11:19,790 آن را که استثنا و فقط نگه داشتن going-- است که فقط یکی از راه های 223 00:11:19,790 --> 00:11:21,070 که کار می کند جاوا اسکریپت. 224 00:11:21,070 --> 00:11:21,781 آره. 225 00:11:21,781 --> 00:11:24,207 >> رسید چه اتفاقی می افتد اگر بیش از حد بسیاری استدلال وجود دارد؟ 226 00:11:24,207 --> 00:11:26,040 SAM سبز: پس از سوال این بود که چه اتفاقی می افتد 227 00:11:26,040 --> 00:11:27,380 اگر بیش از حد بسیاری از استدلال وجود دارد؟ 228 00:11:27,380 --> 00:11:29,171 و پاسخ این است که جاوا اسکریپت فقط به 229 00:11:29,171 --> 00:11:32,120 چشم پوشی از آنهایی هستند که پس از آنهایی که آن را انتظار دارد. 230 00:11:32,120 --> 00:11:36,420 آن را امتحان کنید خواهید برای اجرای تابع پاسخ به عنوان اگر آن را فقط در دو مورد اول بود. 231 00:11:36,420 --> 00:11:37,075 درست؟ 232 00:11:37,075 --> 00:11:37,700 >> HUGH ZABRISKIE: درست است، آره. 233 00:11:37,700 --> 00:11:39,449 به طور مشابه، اگر وجود دارد بیش از حد چند استدلال هستند، 234 00:11:39,449 --> 00:11:42,640 آن را فقط نوع می دهد تهی به همه استدلال آن را از هیچ ارزش ندارد 235 00:11:42,640 --> 00:11:43,660 برای. 236 00:11:43,660 --> 00:11:45,810 >> SAM سبز: که می تواند در واقع مفید باشد، اگر شما 237 00:11:45,810 --> 00:11:49,060 می خواهم برای نوشتن یک تابع است که استدلالهایی تعداد متغیر طول می کشد. 238 00:11:49,060 --> 00:11:55,830 شما می توانید مقادیر پیش فرض در مجموعه تعریف تابع، 239 00:11:55,830 --> 00:11:59,060 و می تواند این واقعیت که ورودی وجود ندارد. 240 00:11:59,060 --> 00:12:01,584 241 00:12:01,584 --> 00:12:04,000 بنابراین من می خواهم به بحث کمی بیشتر در مورد این گلوله آخرین 242 00:12:04,000 --> 00:12:05,541 نقطه است که توابع ارزش هستند. 243 00:12:05,541 --> 00:12:07,930 244 00:12:07,930 --> 00:12:11,010 این یک نمونه است که کمی ذهن دمیدن 245 00:12:11,010 --> 00:12:14,880 اگر شما فقط آن را بخوانید، و فکر نمی کنم در مورد آنچه که در برای یک ثانیه. 246 00:12:14,880 --> 00:12:17,910 بنابراین، اجازه دهید نگاهی فقط در خط اول در اینجا. 247 00:12:17,910 --> 00:12:24,360 ما این متغیر، F1، که ما می گویند یک تابع است که این چیز است. 248 00:12:24,360 --> 00:12:28,535 و محتویات تابع می console.log ("سلام"). 249 00:12:28,535 --> 00:12:32,220 شما می توانید از console.log به عنوان فکر می کنم معادل جاوا اسکریپت از printf است. 250 00:12:32,220 --> 00:12:35,510 بنابراین چه اتفاقی خواهد افتاد است، اگر ما اجرای این کد در مرورگر ما، 251 00:12:35,510 --> 00:12:37,530 آن را چاپ یک رشته است. 252 00:12:37,530 --> 00:12:39,342 من می توانم نشان می دهد که. 253 00:12:39,342 --> 00:12:42,300 مخاطبان: توسط ورود به سیستم، هر چند، می کند که میانگین آن را در حال جایی ثبت شده؟ 254 00:12:42,300 --> 00:12:42,550 SAM GREEN: آره. 255 00:12:42,550 --> 00:12:44,216 بنابراین من به شما چه اتفاقی خواهد افتاد نشان می دهد. 256 00:12:44,216 --> 00:12:48,085 بنابراین سوال این بود، چه ورود به سیستم چیست؟ 257 00:12:48,085 --> 00:12:51,262 >> HUGH ZABRISKIE: پس console.log است مانند printf برای C. 258 00:12:51,262 --> 00:12:52,970 SAM سبز: پس console.log است مانند printf، 259 00:12:52,970 --> 00:12:59,240 بنابراین اگر من این console.log ("سلام")، و من پاسخ آن، رشته "Hello" 260 00:12:59,240 --> 00:13:00,730 می شود به کنسول چاپ کرد. 261 00:13:00,730 --> 00:13:03,340 این کنسول است. 262 00:13:03,340 --> 00:13:05,930 این درست مثل تابع () printf، که در آن آن را به بیرون استاندارد چاپ می کند. 263 00:13:05,930 --> 00:13:09,050 264 00:13:09,050 --> 00:13:11,230 و ما در یک دقیقه را مشاهده کنید، اما این در واقع 265 00:13:11,230 --> 00:13:16,529 با اشاره به شی کنسول، و فراخوانی متد که شی. 266 00:13:16,529 --> 00:13:18,320 است که به شما حس تر در یک دقیقه هنگامی که ما 267 00:13:18,320 --> 00:13:20,660 به صحبت کردن در مورد اشیاء در جاوا اسکریپت، 268 00:13:20,660 --> 00:13:22,509 اما من فکر کردم من فقط می ذکر است که. 269 00:13:22,509 --> 00:13:24,300 HUGH ZABRISKIE: ما در C استفاده می شود، right-- 270 00:13:24,300 --> 00:13:27,580 ما معمولا نوشتن یک برنامه بزرگ در اصلی را به انجام هر کاری است. 271 00:13:27,580 --> 00:13:30,700 اما چه سرد در جاوا اسکریپت شما است این نوع از مفسر است که 272 00:13:30,700 --> 00:13:33,620 اجرا می شود در زمان واقعی، پس از آن طول می کشد فقط خط به خط، 273 00:13:33,620 --> 00:13:35,320 آن را میتوانید تفسیر است که در نقطه ای. 274 00:13:35,320 --> 00:13:37,403 و آن را نگه می دارد ردیابی چیزهایی که قبل از اجرا کرده اند، 275 00:13:37,403 --> 00:13:41,620 پس از آن یک ابزار بسیار مفید برای استفاده console.log، یا کنسول، 276 00:13:41,620 --> 00:13:46,870 به طور کلی، برای فقط بازی در اطراف با جاوا اسکریپت. 277 00:13:46,870 --> 00:13:51,420 >> SAM سبز: بنابراین رفتن به این example-- خط دوم از کد 278 00:13:51,420 --> 00:13:55,320 در اینجا بسیار ذهن ترا درهم میشکنند در سر من است. 279 00:13:55,320 --> 00:13:59,790 اولین بار من این را بخوانید، مثل این بود که، چه خبر است؟ 280 00:13:59,790 --> 00:14:04,580 بنابراین آنچه اتفاق می افتد این است که این اعلان تابع می گوید، 281 00:14:04,580 --> 00:14:10,170 من یک تابع به نام F2 که انتظار یک آرگومان، F، 282 00:14:10,170 --> 00:14:12,990 و سپس آن را که خواستار تابع، F، که 283 00:14:12,990 --> 00:14:17,652 به آن به عنوان یک استدلال به تصویب رسید بدون آرگومان است. 284 00:14:17,652 --> 00:14:19,110 بنابراین، ممکن است گیج کننده است که بوده است. 285 00:14:19,110 --> 00:14:21,890 286 00:14:21,890 --> 00:14:28,400 اگر ما این را درک به عنوان F2 F1 طول می کشد به عنوان یک استدلال، و سپس داخل F2، 287 00:14:28,400 --> 00:14:31,190 F می شود که به معنای called-- که این خط از کد، 288 00:14:31,190 --> 00:14:34,192 پس از این دو خط از کد، نتایج در "سلام" 289 00:14:34,192 --> 00:14:35,400 به کنسول چاپ شده است. 290 00:14:35,400 --> 00:14:41,660 291 00:14:41,660 --> 00:14:44,910 >> این واقعیت که ما می تواند عبور توابع اطراف به عنوان ارزش 292 00:14:44,910 --> 00:14:47,870 پایان می رسد تا یکی از مهم ترین ویژگی های قدرتمند از جاوا اسکریپت 293 00:14:47,870 --> 00:14:49,700 به عنوان یک زبان برنامه نویسی. 294 00:14:49,700 --> 00:14:52,782 خارج از همه از چیز عالی آن می توانید انجام، 295 00:14:52,782 --> 00:14:54,990 فقط به عنوان یکی از ویژگی های زبان از نظر راه 296 00:14:54,990 --> 00:14:58,400 که آن را می سازد همه چیز را آسان به برنامه اجازه می دهد تا 297 00:14:58,400 --> 00:15:01,060 برای چیزهایی که به خصوص به خوبی مناسب به وب، 298 00:15:01,060 --> 00:15:04,500 برنامه نویسی تابعی و کاربردی جنبه های برنامه نویسی جاوا اسکریپت 299 00:15:04,500 --> 00:15:07,130 یکی از مهمترین است مفاهیم قدرتمند است که 300 00:15:07,130 --> 00:15:11,030 در JavaScript-- وجود دارد اگر شما از من بپرسید. 301 00:15:11,030 --> 00:15:11,960 خنک. 302 00:15:11,960 --> 00:15:13,534 >> بنابراین، چیزی که بعد از. 303 00:15:13,534 --> 00:15:16,450 علاوه بر کاربردی بودن، همچنین عناصر جاوا اسکریپت وجود دارد 304 00:15:16,450 --> 00:15:20,510 که شی گرا، که یکی از بسیار است 305 00:15:20,510 --> 00:15:23,800 کلمات وزوز محبوب در علم کامپیوتر است. 306 00:15:23,800 --> 00:15:27,040 برنامه نویسی شی گرا یک چیز واقعا محبوب است. 307 00:15:27,040 --> 00:15:34,210 جاوا اسکریپت دارای یک نسخه از آن، که در آن به اعتقاد من هر ارزش است 308 00:15:34,210 --> 00:15:41,475 یک شی، که بدان معنی است که هر شی با هم کاری ادامه داده اند برخی از تعدادی از ارزش ها است. 309 00:15:41,475 --> 00:15:44,020 310 00:15:44,020 --> 00:15:49,750 بنابراین برای ارزش هایی که ساده هستند، مانند یک عدد صحیح، مانند VARX برابر با 5، 311 00:15:49,750 --> 00:15:52,250 که جسم فقط کاری ادامه داده اند که یک مقدار است. 312 00:15:52,250 --> 00:15:54,760 313 00:15:54,760 --> 00:15:59,036 >> اما ما همچنین می تواند یک وضعیت تصور where-- ما می توانیم از شرایط در C فکر می کنم 314 00:15:59,036 --> 00:16:00,910 که در آن ما می خواستیم به انجام چیزی را با ساختمانها، 315 00:16:00,910 --> 00:16:03,285 برای مثال، چند کاری ادامه داده اند ارزش و باعث می شود با هم 316 00:16:03,285 --> 00:16:05,870 آن را واقعا آسان به تصویب همه چیز در اطراف. 317 00:16:05,870 --> 00:16:09,270 این زمانی است که یک شی است در جاوا اسکریپت. 318 00:16:09,270 --> 00:16:12,340 >> این مهم است به یاد داشته باشید وقتی که من می گویند که اشیاء پیچیده 319 00:16:12,340 --> 00:16:15,330 برخی از تعدادی از مقادیر با هم، که توابع نیز 320 00:16:15,330 --> 00:16:21,506 ارزش ها، که بدان معنی است که توابع را می همچنین در داخل یک شی جاوا اسکریپت می باشد. 321 00:16:21,506 --> 00:16:26,910 و به همین دلیل است که مهم این است که، در حالی که ما اغلب 322 00:16:26,910 --> 00:16:30,290 از فراخوانی متد فکر می کنم بر روی یک شی که 323 00:16:30,290 --> 00:16:35,200 از مدت های محبوب از دیگر زبان های شی گرا محبوب، 324 00:16:35,200 --> 00:16:39,330 یکی از تفاوت های اینجا این است که که یک روش در جاوا اسکریپت است 325 00:16:39,330 --> 00:16:47,270 یک مقدار ذخیره شده در داخل یک شی که انجام برخی از action-- احتمالا 326 00:16:47,270 --> 00:16:51,850 با استفاده از ارزش های دیگر که در داخل آن شی، اما نه لزوما. 327 00:16:51,850 --> 00:16:56,930 بنابراین شما می توانید یک وضعیت تصور کنید، من حدس می زنم در یک کمی از راه دیوانه، 328 00:16:56,930 --> 00:17:02,990 که در آن شما یک روش به نام شی در شی دیگری، برای مثال. 329 00:17:02,990 --> 00:17:06,010 بنابراین، آن را کمی بد بو را در آن راه است. 330 00:17:06,010 --> 00:17:09,369 >> و شما همچنین می توانید از روش های تغییر که با یک شی مرتبط 331 00:17:09,369 --> 00:17:13,740 با اختصاص که روش تابع جدید، که آن هم 332 00:17:13,740 --> 00:17:18,250 بسیار متفاوت از سایر زبان های شی گرا، که در آن 333 00:17:18,250 --> 00:17:21,410 زمانی که ما یک شی اعلام و نمونه آن، 334 00:17:21,410 --> 00:17:25,839 ما می توانیم از روش های که تغییر نمی مرتبط با آن شی نیست. 335 00:17:25,839 --> 00:17:28,680 به طوری که خیلی متفاوت است. 336 00:17:28,680 --> 00:17:29,570 خنک. 337 00:17:29,570 --> 00:17:34,010 >> بنابراین در اینجا یک مثال است، برای اولین بار، از یک شی در عمل است. 338 00:17:34,010 --> 00:17:36,390 این چیزی است که به نام یک شیء عمومی، که 339 00:17:36,390 --> 00:17:39,460 بدان معنی است که آن را از هیچ ندارد نام خاص، یک کلاس را نداشته باشند، 340 00:17:39,460 --> 00:17:42,190 این فقط برخی از بسته بندی از ارزش است. 341 00:17:42,190 --> 00:17:49,790 و راهی که به نظر می رسد، ما این جفت بیرونی در اشکال مختلف طبی در اینجا 342 00:17:49,790 --> 00:17:57,950 که نشان می دهد به جاوا اسکریپت و می گویند، این یک شی است. 343 00:17:57,950 --> 00:18:02,130 ارزش در داخل از آن هر مقدار در داخل 344 00:18:02,130 --> 00:18:04,590 از جسم است که باید با هم پیچیده می شود. 345 00:18:04,590 --> 00:18:09,180 و در داخل آن شی، ما پس از آن جفت کلید، 346 00:18:09,180 --> 00:18:13,880 که در آن کلید اشاره به نام از ارزش در داخل از جسم، 347 00:18:13,880 --> 00:18:16,790 و side-- دیگر مخالف here-- روده بزرگ 348 00:18:16,790 --> 00:18:19,850 ارزش واقعی است که باید ذخیره شود. 349 00:18:19,850 --> 00:18:26,210 >> بنابراین شما اینجا را ببینید که ما یک کلیدی به نام fn را با ارزش سام، 350 00:18:26,210 --> 00:18:29,430 توسط یک کاما، گفت بر روی ورودی بعدی. 351 00:18:29,430 --> 00:18:33,560 سپس یک کلید به نام LN، با ارزش سبز، 352 00:18:33,560 --> 00:18:35,840 توسط یک کاما، به دنبال "چاپ" 353 00:18:35,840 --> 00:18:43,209 که رفتن به یک مقدار تابع است که رفتن به این خط از کد. 354 00:18:43,209 --> 00:18:45,500 اجازه دهید یک گام به عقب و باز کردن آنچه که در اینجا. 355 00:18:45,500 --> 00:18:47,280 پس این است که کمی پیچیده، و ما شاهد چیزی جدید 356 00:18:47,280 --> 00:18:48,071 برای اولین بار. 357 00:18:48,071 --> 00:18:51,190 358 00:18:51,190 --> 00:18:55,065 "این" کلمه کلیدی چیزی که جدید است ما در اینجا دیدن، و چه می کند این 359 00:18:55,065 --> 00:19:00,540 است، اشاره به جریان شی در دامنه، درست است؟ 360 00:19:00,540 --> 00:19:03,990 بنابراین، هنگامی که ما می گویند، این اشاره تمام راه برگشت 361 00:19:03,990 --> 00:19:08,140 به کل این object-- هنگامی که ما انجام this.fn، 362 00:19:08,140 --> 00:19:11,990 ما قصد داریم به رفتن تمام راه را برگشت به این شیء، به ارزش FN رفتن 363 00:19:11,990 --> 00:19:16,471 و سام، آن را بکشید تمام راه تماس، چوب آن در اینجا، و سپس حرکت. 364 00:19:16,471 --> 00:19:19,838 >> مخاطبان: بنابراین با بازیابی، است که به دلیل پارامتر انجام 365 00:19:19,838 --> 00:19:20,621 تعریف؟ 366 00:19:20,621 --> 00:19:23,870 SAM GREEN: بنابراین سوال این بود، است بازیابی به دلیل پارامتر انجام 367 00:19:23,870 --> 00:19:24,727 تعریف؟ 368 00:19:24,727 --> 00:19:25,435 آره، کاملا. 369 00:19:25,435 --> 00:19:29,660 370 00:19:29,660 --> 00:19:32,470 چه چیزی در اینجا اتفاق می افتد، این نقطه می گوید به جاوا اسکریپت، 371 00:19:32,470 --> 00:19:39,990 خوب، من گرفتن برخی از ارزش از این شی از خودم. 372 00:19:39,990 --> 00:19:46,375 و سپس آن را برای ورود نگاه نام FN، و اگر آن را در آن می یابد، 373 00:19:46,375 --> 00:19:48,470 آن را value-- بازگشت که، آن را سام. 374 00:19:48,470 --> 00:19:51,540 اما من هم می تواند تایپ چیزی نیست که از اینجا تعریف نشده است، 375 00:19:51,540 --> 00:19:54,090 و سپس آن را فقط بازگشت undefined-- که 376 00:19:54,090 --> 00:19:58,250 چیزی است که جاوا اسکریپت می تواند انجام دهید، که می تواند منافع دارند، 377 00:19:58,250 --> 00:20:03,190 اما آن را also-- اگر شما یک تایپی، آن را می توانید در خطاهای عجیب و غریب است. 378 00:20:03,190 --> 00:20:05,617 بنابراین آن را فقط سعی کنید برای پیدا هر آنچه که شما آن را به پیدا 379 00:20:05,617 --> 00:20:07,700 و آن را به رفتن نیست شکایت اگر آن را پیدا کند. 380 00:20:07,700 --> 00:20:11,390 آن را فقط می گویند، من نیست پیدا کردن آن، و سپس حرکت. 381 00:20:11,390 --> 00:20:17,581 پس از آن خواهد تعریف نشده، به علاوه خالی، به علاوه نام خانوادگی 382 00:20:17,581 --> 00:20:18,080 آره. 383 00:20:18,080 --> 00:20:21,070 و پس از آن ما می توانید ببینید که اگر ما پس از آن می تواند به پایین و access-- 384 00:20:21,070 --> 00:20:25,450 و ما tf.print () با پرانتز پاسخ. 385 00:20:25,450 --> 00:20:30,000 آن را به پاسخ که چاپ تابع بدون آرگومان، درست است؟ 386 00:20:30,000 --> 00:20:34,490 اما اگر ما فقط گفت tf.print () نقطه و ویرگول، بدون پرانتز، 387 00:20:34,490 --> 00:20:37,480 همه که انجام داده اند جلو از تابع از ارزش، 388 00:20:37,480 --> 00:20:40,609 اما در واقع آن به نام نیست. 389 00:20:40,609 --> 00:20:41,162 خنک. 390 00:20:41,162 --> 00:20:42,870 HUGH ZABRISKIE: باید ما را یک شی؟ 391 00:20:42,870 --> 00:20:44,161 SAM GREEN: مطمئنا، اجازه دهید که. 392 00:20:44,161 --> 00:20:48,750 بنابراین من می تواند این حرکت به عنوان مثال برای کنسول. 393 00:20:48,750 --> 00:20:51,380 394 00:20:51,380 --> 00:20:55,466 ما می توانید تصور کنید که من یک شی. 395 00:20:55,466 --> 00:21:03,026 396 00:21:03,026 --> 00:21:04,150 بنابراین این یک هدف ساده است. 397 00:21:04,150 --> 00:21:06,910 398 00:21:06,910 --> 00:21:11,050 این جسم است که شامل دو است ارزش ها را با دو کلید، دو ارزش کلیدی 399 00:21:11,050 --> 00:21:12,710 جفت. 400 00:21:12,710 --> 00:21:21,850 بنابراین من و سپس می توانید مقدار ذخیره شده دسترسی در داخل این شی با انجام x.x1، 401 00:21:21,850 --> 00:21:23,400 برای مثال، و من 1 تماس. 402 00:21:23,400 --> 00:21:29,590 به همین ترتیب، x.x2، دریافت که ارزش برگشت. 403 00:21:29,590 --> 00:21:33,330 >> و در حال حاضر چیزی که واقعا جالب است، من می توانم در واقع چیزی به این شی اضافه 404 00:21:33,330 --> 00:21:34,316 پس از من آن ایجاد کرده اید. 405 00:21:34,316 --> 00:21:36,315 بنابراین شما می توانید تصور کنید، اجازه دهید می گویند من یک تابع است. 406 00:21:36,315 --> 00:21:44,430 407 00:21:44,430 --> 00:21:46,352 >> HUGH ZABRISKIE: شما باید انجام دهید SHIFT-را وارد کنید. 408 00:21:46,352 --> 00:21:47,643 >> SAM سبز: اوه، که آزار دهنده است. 409 00:21:47,643 --> 00:22:02,460 410 00:22:02,460 --> 00:22:04,324 چه آن را دوست ندارم؟ 411 00:22:04,324 --> 00:22:04,824 آه. 412 00:22:04,824 --> 00:22:07,532 413 00:22:07,532 --> 00:22:08,691 در اینجا ما به. 414 00:22:08,691 --> 00:22:09,190 خنک. 415 00:22:09,190 --> 00:22:12,840 >> بنابراین من فقط ایجاد کرده اید این تابع، F، که 416 00:22:12,840 --> 00:22:17,590 است که برای رفتن به جریان جسم و this.x1 چاپ. 417 00:22:17,590 --> 00:22:20,330 بنابراین اگر من فقط F پاسخ توسط خود را، هیچ چیز را 418 00:22:20,330 --> 00:22:26,970 اتفاق می افتد، درست است، چون هیچ X1 وجود دارد درست در جسم آن را با اشاره به. 419 00:22:26,970 --> 00:22:39,710 اما، اگر من می گویند، x.f = F، و سپس من x.f () پاسخ، من قصد دارم به عقب بر گردیم 1. 420 00:22:39,710 --> 00:22:42,990 421 00:22:42,990 --> 00:22:46,530 که تابع f در حال حاضر مرتبط با X شی، 422 00:22:46,530 --> 00:22:51,800 که دارای یک کلید به نام X1 در ارتباط با ارزش 1، 423 00:22:51,800 --> 00:22:54,570 تا زمانی که ما this.x1 پاسخ، آن را رفتن به پیدا کردن آنچه آن را به دنبال 424 00:22:54,570 --> 00:22:56,450 و قادر به چاپ یک مقدار است. 425 00:22:56,450 --> 00:22:58,700 به طوری که تنها یک نمونه است از نوع چیزهایی دیوانه 426 00:22:58,700 --> 00:23:01,190 شما می توانید با اشیاء در جاوا اسکریپت است. 427 00:23:01,190 --> 00:23:03,870 428 00:23:03,870 --> 00:23:07,560 >> به طوری که نسخه بود نسخه عمومی، به این معنی 429 00:23:07,560 --> 00:23:13,780 که ما یک شی با استفاده از این ایجاد کرده اید پرانتز نماد بند نشانه گذاری، 430 00:23:13,780 --> 00:23:16,880 rather-- که دستی اگر ما فقط می خواهم 431 00:23:16,880 --> 00:23:21,440 یک نمونه از یک شیء خاص، اما اگر ما می خواهیم به بیش از یک 432 00:23:21,440 --> 00:23:22,210 از همان نوع. 433 00:23:22,210 --> 00:23:24,440 و پاسخ به این سوال این است، چیزهایی وجود دارد 434 00:23:24,440 --> 00:23:26,760 کلاس در جاوا اسکریپت به نام است. 435 00:23:26,760 --> 00:23:31,470 436 00:23:31,470 --> 00:23:36,420 ما می توانیم یک تابع ایجاد می کند که هیچ نوعی از مقدار دهی اولیه 437 00:23:36,420 --> 00:23:41,690 برای یک شیء خارجی، و ما می گویند، مانند، 438 00:23:41,690 --> 00:23:44,550 class-- من تا نام از object-- قابل استفاده مجدد 439 00:23:44,550 --> 00:23:47,100 برابر تابع که از آن مجموعه است. 440 00:23:47,100 --> 00:23:52,280 پس چه این خواهد بود معادل به ایجاد یک شی است که 441 00:23:52,280 --> 00:23:55,930 خواهد بود فقط دوست دارم، آکولاد، STR، روده بزرگ، 442 00:23:55,930 --> 00:23:59,630 این یک رشته است، نقطه و ویرگول، آکولاد. 443 00:23:59,630 --> 00:24:01,880 این امر می تواند عمومی شی ما مقداردهی اولیه، 444 00:24:01,880 --> 00:24:06,380 با یکی از تفاوت در خط بعدی ما یک نمونه اولیه ایجاد کنید، که 445 00:24:06,380 --> 00:24:11,190 به معنی آن یک کلید پیش فرض است که ما به جسم ما اضافه کنید که 446 00:24:11,190 --> 00:24:13,970 دارای ارزش ذکر شده در اینجا. 447 00:24:13,970 --> 00:24:20,570 به این معنی که، زمانی که من ایجاد یک به عنوان مثال از این شیء MyClass، 448 00:24:20,570 --> 00:24:27,440 آن را به از پیش ساخته شده در داخل آن را یک مقدار به نام STR و ارزش دیگر 449 00:24:27,440 --> 00:24:32,418 نام myPrint است که برای رفتن به یک تابع. 450 00:24:32,418 --> 00:24:32,918 عالی. 451 00:24:32,918 --> 00:24:37,410 452 00:24:37,410 --> 00:24:37,990 >> عالی. 453 00:24:37,990 --> 00:24:40,710 بنابراین آخرین چیزی به در مورد جاوا اسکریپت می گویند 454 00:24:40,710 --> 00:24:46,430 است که آن را واقعا برای آنچه که مفید عملیات های آسنکرون نامیده می شود. 455 00:24:46,430 --> 00:24:52,500 ابزار آسنکرون این است که ما می توانید برای برخی از عملیات صبر کنید 456 00:24:52,500 --> 00:24:57,870 کامل قبل از ما حرکت در، اما حرکت در حالی که ما منتظر 457 00:24:57,870 --> 00:24:59,690 و پس از آن چیزی اتفاق می افتد بعد از آن. 458 00:24:59,690 --> 00:25:03,480 و آنچه که من در آن است، شما می توانید تصور کنید که در آن یک وضعیت 459 00:25:03,480 --> 00:25:06,850 شما درخواست برای ارسال برخی از وب سرور در جایی، 460 00:25:06,850 --> 00:25:09,670 و آن را به برای شما ارسال تماس برخی از تکه های بزرگی از داده ها، درست است؟ 461 00:25:09,670 --> 00:25:13,320 و کاربر می تواند خود را در صبر ضمن برای اینکه این اتفاق بیفتد، 462 00:25:13,320 --> 00:25:15,200 و هیچ چیز می تواند در حال انجام در آن زمان است. 463 00:25:15,200 --> 00:25:18,110 اما این یک طرح بزرگ، درست است؟ 464 00:25:18,110 --> 00:25:20,214 شما نمی خواهید صفحه وب به یخ. 465 00:25:20,214 --> 00:25:22,380 اگر کاربر می خواهد به در منوی کشویی کلیک کنید. 466 00:25:22,380 --> 00:25:24,870 این یک الگوی طرح بزرگ نیست. 467 00:25:24,870 --> 00:25:29,290 در عوض، اساسا چه جاوا اسکریپت می گوید، 468 00:25:29,290 --> 00:25:31,870 OK، انجام این عملیات غیر همزمان. 469 00:25:31,870 --> 00:25:36,520 بنابراین مانند، صبر در پس زمینه، و پس از آن زمانی که عملیات انجام شده است، 470 00:25:36,520 --> 00:25:39,420 پاسخ پاسخ به تماس تابع پاسخ برخی از تابع، 471 00:25:39,420 --> 00:25:43,800 برخی از action-- به سیگنال که عملیات ما برای پایان دادن به انتظار بودند 472 00:25:43,800 --> 00:25:45,520 تمام شد. 473 00:25:45,520 --> 00:25:51,240 و به همین دلیل است که فوق العاده قدرتمند است، ما چیزی می تواند انجام دهد، تصویب یک استدلال، 474 00:25:51,240 --> 00:25:54,440 انجام کاری، و سپس صبر کنید برای چیزی اتفاق می افتد. 475 00:25:54,440 --> 00:25:58,970 سپس، یک بار که چیزی کامل، ما می توانیم یک پاسخ به تماس پاسخ. 476 00:25:58,970 --> 00:26:03,300 این واقعا دستی به دلیل آن را اجازه می دهد تا ما انجام کارهای با API صوتی وب، 477 00:26:03,300 --> 00:26:07,490 برای مثال، مانند بار فایل صوتی را از یک سرور راه دور 478 00:26:07,490 --> 00:26:11,660 بدون نیاز به صبر برای تمام فایل های صوتی به بارگذاری می شود، 479 00:26:11,660 --> 00:26:14,440 که واقعا می تواند بد برای تجربه کاربر. 480 00:26:14,440 --> 00:26:17,080 خنک. 481 00:26:17,080 --> 00:26:19,460 >> تاریخ و زمان آخرین یادداشت ها در باره زن و شوهر اشکال زدایی، از آنجایی که این 482 00:26:19,460 --> 00:26:23,682 یک چیز شما به باید انجام دهید این است به عنوان بخشی از پروژه خود را، تضمین شده است. 483 00:26:23,682 --> 00:26:25,140 من کنسول جاوا اسکریپت ذکر شده است. 484 00:26:25,140 --> 00:26:27,550 این یکی از ویژگی های فوق العاده مفید است از تمام مرورگرهای مدرن، 485 00:26:27,550 --> 00:26:30,300 و ما واقعا شما را تشویق به راحت با استفاده از کنسول خود را، 486 00:26:30,300 --> 00:26:33,660 اگر شما می خواهید برای گرفتن خوب در جاوا اسکریپت. 487 00:26:33,660 --> 00:26:36,320 این فوق العاده برای مفید اشکال زدایی، اما آن را نیز 488 00:26:36,320 --> 00:26:39,440 واقعا برای بدانند مفید چگونه به استفاده از یک API. 489 00:26:39,440 --> 00:26:41,950 آن را برای واقعا اجازه می دهد تا آزمایش آسان 490 00:26:41,950 --> 00:26:45,910 بدون نیاز به تایپ برخی کد، و سپس آن را کامپایل کنید. 491 00:26:45,910 --> 00:26:47,500 شما لازم نیست که برای انجام تمام این مراحل. 492 00:26:47,500 --> 00:26:49,619 شما می توانید فقط ارسال برخی از کد به یک خط، 493 00:26:49,619 --> 00:26:52,410 و پس از دریافت بازخورد فوری این که آیا این خط از کد یا نه 494 00:26:52,410 --> 00:26:55,230 worked-- بسیار مفید است. 495 00:26:55,230 --> 00:26:59,760 >> و همچنین، فقط یک note-- فنی کنسول جاوا اسکریپت برای مثال است 496 00:26:59,760 --> 00:27:05,680 یک REPL-- به طوری که R-E-P-L است، REPL، که برای خواندن می ایستد، ارزیابی، 497 00:27:05,680 --> 00:27:06,180 حلقه چاپ. 498 00:27:06,180 --> 00:27:09,100 499 00:27:09,100 --> 00:27:12,120 شما در حال رفتن به تایپ برخی از مسائل در، آن را به خواندن آنچه شما در تایپ، 500 00:27:12,120 --> 00:27:17,280 آن را آن را ارزیابی، و آن را چاپ خروجی، و سپس آن را دوباره شروع می شود. 501 00:27:17,280 --> 00:27:22,056 که اجازه می دهد تا شما را به سرعت در رفتن محافل تکرار، که واقعا سرد است. 502 00:27:22,056 --> 00:27:25,150 503 00:27:25,150 --> 00:27:28,930 >> من حدس می زنم آخرین واقعی note-- این توجه داشته باشید آخرین واقعی است، بله. 504 00:27:28,930 --> 00:27:30,780 چگونه می توانیم از جاوا اسکریپت استفاده کنید؟ 505 00:27:30,780 --> 00:27:34,040 بنابراین برای اولین بار، ما می توانید وارد با استفاده از یک تگ اسکریپت 506 00:27:34,040 --> 00:27:39,500 در بالا و یا پایین از HTML file-- هر نقطه در داخل یک فایل HTML، 507 00:27:39,500 --> 00:27:40,440 واقعا. 508 00:27:40,440 --> 00:27:47,390 و در یک تگ اسکریپت، وجود دارد دو زیر راه واردات جاوا اسکریپت. 509 00:27:47,390 --> 00:27:51,370 اول این است که با داشتن یک فایل جاوا اسکریپت جداگانه 510 00:27:51,370 --> 00:27:58,010 که ما در تمامیت خود را وارد کنید، و یا با داشتن یک منطقه از کد مانند اسکریپت 511 00:27:58,010 --> 00:28:00,290 برای شروع، و پس از آن اسکریپت بک اسلش برای پایان دادن به. 512 00:28:00,290 --> 00:28:02,620 و پس از آن ما فقط ارسال جاوا اسکریپت در داخل فایل HTML. 513 00:28:02,620 --> 00:28:03,790 آن دو راه می باشد. 514 00:28:03,790 --> 00:28:05,165 شما نمی توانید آن را در داخل HTML را داشته باشد. 515 00:28:05,165 --> 00:28:06,502 516 00:28:06,502 --> 00:28:08,126 مخاطبان: یکی بهتر از دیگری؟ 517 00:28:08,126 --> 00:28:10,542 SAM سبز: سوال بود، یکی بهتر از دیگری. 518 00:28:10,542 --> 00:28:18,306 بنابراین، بله، به عنوان یک عمل سبک برنامه نویسی، و همچنین آن را مانند یک عمل طراحی شده است. 519 00:28:18,306 --> 00:28:20,180 دو دلیل وجود دارد دلیل آن ممکن است بهتر است. 520 00:28:20,180 --> 00:28:23,934 اول این است، آن را می سازد کد خود را بسیاری بیشتر قابل خواندن اگر همه HTML خود را 521 00:28:23,934 --> 00:28:27,100 است در یک مکان، همه CSS خود را در جای دیگر، همه جاوا اسکریپت خود را 522 00:28:27,100 --> 00:28:28,420 در یک مکان سوم است. 523 00:28:28,420 --> 00:28:28,920 درست؟ 524 00:28:28,920 --> 00:28:32,370 من فکر می کنم ما باید در حال حاضر صحبت در مورد آن در sections-- مانند CSS-- چه 525 00:28:32,370 --> 00:28:35,220 که is-- و آن می رود اغلب در یک فایل دیگر. 526 00:28:35,220 --> 00:28:37,090 بنابراین، نوع مشابه از مفهوم در اینجا. 527 00:28:37,090 --> 00:28:42,410 شما همچنین می توانید تصور کنید که جاوا اسکریپت می شود در بیش از یک مورد استفاده مجدد قرار 528 00:28:42,410 --> 00:28:47,350 صفحه HTML، و یا شاید یک بسیاری از صفحات HTML بزرگ، 529 00:28:47,350 --> 00:28:49,340 و داشتن که جاوا اسکریپت refactored است به یکی از 530 00:28:49,340 --> 00:28:51,950 فایل است که شما می توانید وارد به بیش از یک محل 531 00:28:51,950 --> 00:28:54,570 اجازه می دهد تا کد به راه نگهداری است. 532 00:28:54,570 --> 00:28:57,930 شما می توانید تصور ساخت یک تغییر به جاوا اسکریپت 533 00:28:57,930 --> 00:29:00,070 و نیاز به آن را تغییر دهید در 100 فایل های مختلف. 534 00:29:00,070 --> 00:29:04,070 و به جای آن ما فقط می توانید آن را تغییر دهید در یکی، که راه های قوی تر. 535 00:29:04,070 --> 00:29:05,420 آیا من به سوال شما؟ 536 00:29:05,420 --> 00:29:07,950 خنک. 537 00:29:07,950 --> 00:29:10,830 >> ما همچنین می توانیم به کنسول تایپ کنید، همانطور که ما قبلا ذکر کردیم. 538 00:29:10,830 --> 00:29:15,070 و دوباره، یکی از آخرین note-- وب صوتی ساخته شده است، 539 00:29:15,070 --> 00:29:16,978 شما لازم نیست برای بارگذاری هر چیزی. 540 00:29:16,978 --> 00:29:17,478 خنک. 541 00:29:17,478 --> 00:29:20,519 هر گونه سوال وجود دارد، آیا شما سوال بیشتر در مورد جاوا اسکریپت، 542 00:29:20,519 --> 00:29:21,930 قبل از ما در حرکت؟ 543 00:29:21,930 --> 00:29:24,286 >> مخاطبان: [نامفهوم] 544 00:29:24,286 --> 00:29:25,410 SAM سبز: همه حق است، سرد است. 545 00:29:25,410 --> 00:29:27,200 بنابراین در حال حاضر او را به رفتن به در مورد API صحبت کنید. 546 00:29:27,200 --> 00:29:28,490 >> HUGH ZABRISKIE: داغ. 547 00:29:28,490 --> 00:29:28,990 با تشکر از سام. 548 00:29:28,990 --> 00:29:30,184 >> SAM سبز: حتما. 549 00:29:30,184 --> 00:29:32,600 HUGH ZABRISKIE: بسیار معروف، بنابراین ما را در از جاوا اسکریپت حرکت می کند. 550 00:29:32,600 --> 00:29:35,350 بنابراین ما در مورد برخی از صحبت کردیم ملزومات جاوا اسکریپت، 551 00:29:35,350 --> 00:29:41,105 و کسانی هستند که متغیرها، توابع، اشیاء، توابع به عنوان متغیر، 552 00:29:41,105 --> 00:29:41,980 بارگذاری ناهمگام. 553 00:29:41,980 --> 00:29:46,100 این همه چیز است که شما را به عنوان شما استفاده از صدا وب. 554 00:29:46,100 --> 00:29:49,230 بنابراین ما فقط قصد داریم به بحث در مورد آن برای اولین بار در سطح بالا است. 555 00:29:49,230 --> 00:29:52,120 >> این API است، پس از آن چیزی که ساخته شده است، به عنوان سام گفت: 556 00:29:52,120 --> 00:29:57,010 درست به جاوا اسکریپت که شما در کنسول استفاده کنید. 557 00:29:57,010 --> 00:30:01,020 و این در واقع درست مثل C ++ کد که واقعا به کروم ساخته شده است 558 00:30:01,020 --> 00:30:04,470 و فایرفاکس، و همه از این مرورگرها. 559 00:30:04,470 --> 00:30:07,060 بنابراین ایده اصلی با وب صوتی است که شما باید 560 00:30:07,060 --> 00:30:09,440 این نوع از خط لوله صوتی، درست است؟ 561 00:30:09,440 --> 00:30:13,670 بنابراین داده های صوتی خود می آید در در بعضی از فرم. 562 00:30:13,670 --> 00:30:16,690 >> از نوع سه forms-- اصلی وجود دارد شما باید نوسان ساز، که 563 00:30:16,690 --> 00:30:21,340 یک موج سینوسی ایجاد، موج کسینوسی، ما قصد داریم تا ببینید که چگونه است که کار می کند. 564 00:30:21,340 --> 00:30:23,890 یکی دیگر از بسیار معمول است، البته، MP3 است. 565 00:30:23,890 --> 00:30:25,810 بنابراین شاید شما با شروع یک آهنگ، و سپس شما 566 00:30:25,810 --> 00:30:28,320 می خواهم به انجام برخی از فیلتر به و خروجی 567 00:30:28,320 --> 00:30:30,605 that-- است که می تواند یک منبع امکان پذیر است. 568 00:30:30,605 --> 00:30:32,480 و پس از آن واقعا سرد یک میکروفون است. 569 00:30:32,480 --> 00:30:37,230 بنابراین شما می توانید برخی بسیار استفاده تماس های اساسی در جاوا اسکریپت 570 00:30:37,230 --> 00:30:39,440 برای دسترسی به میکروفون، و بنابراین اگر شما 571 00:30:39,440 --> 00:30:42,870 می خواستم به یک برنامه مانند یک آشکارساز زمین، 572 00:30:42,870 --> 00:30:45,290 به عنوان مثال، که طول می کشد در صدا و ارقام خود را 573 00:30:45,290 --> 00:30:47,740 pitch-- راه بسیار آسان برای که. 574 00:30:47,740 --> 00:30:50,730 شما فقط می توانید نوع از آن را بخوانید در، کشف کردن فرکانس، 575 00:30:50,730 --> 00:30:52,250 و سپس خروجی یک عدد است. 576 00:30:52,250 --> 00:30:56,080 بنابراین ما به عنوان به خوبی خواهید دید که چگونه است که کار می کند،. 577 00:30:56,080 --> 00:30:59,430 >> مقصد است که اساسا که در آن داده های صوتی خروجی است. 578 00:30:59,430 --> 00:31:02,890 بنابراین به طور کلی، که مانند بلندگوهای لپ تاپ شما. 579 00:31:02,890 --> 00:31:05,610 گزینه های دیگر مانند ScriptProcessorNode-- 580 00:31:05,610 --> 00:31:07,990 ما به گره ها در یک گرفتن second-- اما اساسا، 581 00:31:07,990 --> 00:31:11,939 هم شما با قرار دادن صدا از طریق کامپیوتر خود را از طریق بلندگو، 582 00:31:11,939 --> 00:31:14,730 یا شما به آن نوع از ضبط، به طوری که شما آن را ذخیره سازی به عنوان داده های صوتی. 583 00:31:14,730 --> 00:31:18,980 بنابراین شاید اگر کسی ایجاد موسیقی در برنامه های خود را و پس از آن 584 00:31:18,980 --> 00:31:22,410 شما می خواهید برای ضبط و شاید مانند که صادرات آن به SoundCloud، برای example-- 585 00:31:22,410 --> 00:31:25,281 که می شود یک راه برای انجام این کار. 586 00:31:25,281 --> 00:31:27,030 همه چیز سرگرم کننده، که ما در مورد صحبت می کنید، 587 00:31:27,030 --> 00:31:29,950 اتفاق می افتد بین این دو نقطه، جایی که ما در موسیقی بار 588 00:31:29,950 --> 00:31:31,410 و سپس خروجی آن است. 589 00:31:31,410 --> 00:31:36,660 >> بنابراین من قصد دارم به پنج مورد بحث مراحل تولید صدا در یک ثانیه. 590 00:31:36,660 --> 00:31:38,950 ما چیزی به نام AudioContext که 591 00:31:38,950 --> 00:31:41,580 این لفاف بسته بندی کمی ما را در اینجا مشاهده است. 592 00:31:41,580 --> 00:31:49,980 در واقع آنچه is-- اگر ما AudioContext رفتن به کنسول جاوا اسکریپت در حال حاضر، 593 00:31:49,980 --> 00:31:52,740 ما می توانیم یک در حال حاضر ایجاد کنید. 594 00:31:52,740 --> 00:31:54,040 فقط یک مثال از REPL، درست است؟ 595 00:31:54,040 --> 00:31:57,880 ما در حال خواندن، ارزیابی، و آن را چاپ می کند. 596 00:31:57,880 --> 00:32:00,260 >> AudioContext یک دولت جهانی است. 597 00:32:00,260 --> 00:32:05,500 این یک ساختار، آن را یک شی اینجا، و آن را نگه می دارد اطلاعات 598 00:32:05,500 --> 00:32:09,960 در مورد چیزهایی که در حال رفتن به بر روی صفحه نمایش مربوط به صوتی. 599 00:32:09,960 --> 00:32:15,220 یکی از نمونه های زمان کنونی است. 600 00:32:15,220 --> 00:32:18,910 این به شما می گوید تعداد از ثانیه، بسیار دقیق، 601 00:32:18,910 --> 00:32:20,890 از صفحه وب لود می شود. 602 00:32:20,890 --> 00:32:24,110 پس این است که واقعا مفید اموال که شما می توانید استفاده کنید. 603 00:32:24,110 --> 00:32:27,898 آن را به عنوان خوانده شده only-- من فکر می کنم در واقع شما می توانید سعی کنید آن را تنظیم یک مقدار. 604 00:32:27,898 --> 00:32:29,856 آن را به شما آن را، و پس از آن اگر شما آن را چاپ 605 00:32:29,856 --> 00:32:31,439 again-- آن را انجام داد که در واقع کاملا کار نمی کند. 606 00:32:31,439 --> 00:32:34,472 بنابراین وجود فقط خواندنی هستند خواص در جاوا اسکریپت. 607 00:32:34,472 --> 00:32:36,430 این است که واقعا مفید باشد اگر شما در حال همگام سازی نوع 608 00:32:36,430 --> 00:32:38,610 بسیاری از متفاوت اطلاعات، زمانی که شما 609 00:32:38,610 --> 00:32:41,280 نوع بازی صداهای مختلف است. 610 00:32:41,280 --> 00:32:43,630 >> یکی واقعا مفید دیگر مقصد زمینه است. 611 00:32:43,630 --> 00:32:46,587 612 00:32:46,587 --> 00:32:49,670 قطعا، اگر شما علاقه مند هستید، تلاش این در سمت راست کنسول خود را 613 00:32:49,670 --> 00:32:50,980 اکنون. 614 00:32:50,980 --> 00:32:53,150 بنابراین، این AudioDestinationNode است. 615 00:32:53,150 --> 00:32:56,480 در واقع آنچه این می گوید، که در آن است خروجی رفتن؟ 616 00:32:56,480 --> 00:32:59,590 بنابراین ما دو گزینه واقعی در اینجا وجود دارد. 617 00:32:59,590 --> 00:33:01,940 معمولا به طور پیش فرض فقط بلندگوهای خود را، 618 00:33:01,940 --> 00:33:05,150 بنابراین AudioDestinationNode اساسا فقط می گوید 619 00:33:05,150 --> 00:33:09,240 صفر خروجی به صدا وجود دارد در آینده، به بلندگو فرستاده شده است. 620 00:33:09,240 --> 00:33:12,050 بنابراین به طور کلی، شما نمی باید به بازی با آن است. 621 00:33:12,050 --> 00:33:15,720 اگر شما علاقه مند در واقع با استفاده از هستید ScriptProcessorNode برای ضبط، 622 00:33:15,720 --> 00:33:16,990 قطعا من یک شلیک ایمیل بعد به دلیل این که 623 00:33:16,990 --> 00:33:18,330 کمی پیچیده تر است. 624 00:33:18,330 --> 00:33:21,590 اما به طور کلی، شما فقط مهربان هستید از خروجی صدا در بعضی از فرم. 625 00:33:21,590 --> 00:33:24,347 خیلی باحال، ما اینجا تماس پرش. 626 00:33:24,347 --> 00:33:25,180 مخاطبان: من متاسفم. 627 00:33:25,180 --> 00:33:26,054 HUGH ZABRISKIE: آره. 628 00:33:26,054 --> 00:33:28,770 مخاطبان: من می دانم که شما گفت به صحبت به شما بعد در مورد ضبط. 629 00:33:28,770 --> 00:33:31,550 می تواند به شما رابط کاربری است که با نرم افزار ابزار؟ 630 00:33:31,550 --> 00:33:33,120 >> HUGH ZABRISKIE: با نرم افزار ابزار؟ 631 00:33:33,120 --> 00:33:35,260 بیایید ببینید. 632 00:33:35,260 --> 00:33:37,220 گمان نمی کنم. 633 00:33:37,220 --> 00:33:41,670 پس رفتن بین مشتری، که جاوا اسکریپت است 634 00:33:41,670 --> 00:33:44,310 کنسول و واقعی خود را کامپیوتر است به طور کلی، 635 00:33:44,310 --> 00:33:46,490 چیزی است که نوع از حد، اگر شما 636 00:33:46,490 --> 00:33:52,320 خواهد شد، نوع با ماهیت the-- این نوع از چیزی طراحی، 637 00:33:52,320 --> 00:33:57,770 اما شما سعی کنید برای حفظ جداگانه مرورگر از کامپیوتر واقعی کاربر. 638 00:33:57,770 --> 00:34:02,310 به طور کلی، تنها چیزی که شما قادر به هستید دسترسی میکروفون و یا دوربین است. 639 00:34:02,310 --> 00:34:04,730 شما قادر به، من فکر نمی کنم، استفاده از ابزارهای نرم افزار. 640 00:34:04,730 --> 00:34:07,480 با این حال، اگر شما ایجاد یک مسیر در نرم افزار ابزار، 641 00:34:07,480 --> 00:34:12,710 صادر از آن، شما می تواند بار که در اینجا، آن را فیلتر، برای مثال، 642 00:34:12,710 --> 00:34:16,820 فرایند است که، و ضبط که به یک صوتی و یا Destination--، no-- یک کره 643 00:34:16,820 --> 00:34:17,870 گره پردازنده. 644 00:34:17,870 --> 00:34:20,730 و سپس از آنجا، شما می توانید صادرات که به SoundCloud، شما 645 00:34:20,730 --> 00:34:25,320 می تواند آن را در یک ایمیل ارسال کنید، یا هر آنچه که شما از وجود دارد مانند. 646 00:34:25,320 --> 00:34:31,159 >> اما نوع یک مانع کمی وجود دارد بین ساخت موسیقی بر روی کامپیوتر شما 647 00:34:31,159 --> 00:34:33,050 و ساخت آنلاین موسیقی است. 648 00:34:33,050 --> 00:34:37,940 >> SAM سبز: و این منحصر به فرد این API است. 649 00:34:37,940 --> 00:34:44,060 این یکی از ویژگی های امنیتی کروم است، و من فکر می کنم هر مرورگر مدرن است. 650 00:34:44,060 --> 00:34:45,860 مرورگر خود شامل است. 651 00:34:45,860 --> 00:34:50,980 بنابراین برای مثال، یک صفحه وب می تواند استفاده از جاوا اسکریپت صدا به نوبه خود 652 00:34:50,980 --> 00:34:54,190 در در بلندگوهای خود را، برای مثال. 653 00:34:54,190 --> 00:34:58,120 یا آن را می توانید کامپیوتر خود را خاموش نکنید. 654 00:34:58,120 --> 00:35:01,530 و هیچ نقطه میانی وجود دارد بین این دو چیز، راست، 655 00:35:01,530 --> 00:35:05,960 پس یا شما یک انتزاع کامل، 656 00:35:05,960 --> 00:35:10,050 و یا شما برای باز کردن نقص امنیتی از اجازه دادن به 657 00:35:10,050 --> 00:35:14,440 یک برنامه نویس با نیت بد انجام هر آنچه که آنها با لپ تاپ خود را می خواهید. 658 00:35:14,440 --> 00:35:18,104 و به همین دلیل کروم خود شامل است. 659 00:35:18,104 --> 00:35:19,310 >> HUGH ZABRISKIE: آره. 660 00:35:19,310 --> 00:35:20,840 فرقی میکنه؟ 661 00:35:20,840 --> 00:35:21,369 باحال باحال. 662 00:35:21,369 --> 00:35:23,160 من فقط رفتن به شد یک مثال از یک نشان می دهد. 663 00:35:23,160 --> 00:35:25,118 این است که تقریبا به عنوان آنجا که می کنید، در 664 00:35:25,118 --> 00:35:26,950 دسترسی به کامپیوتر کاربر. 665 00:35:26,950 --> 00:35:30,180 اگر شما یک صفحه کلید USB وصل، شما می توانید چیزی به نام وب استفاده 666 00:35:30,180 --> 00:35:32,180 MIDI API، که ما نمی خواهد واقعا در مورد اینجا صحبت می کنید، 667 00:35:32,180 --> 00:35:36,330 اما این API دیگری که است ساخته شده را به حداقل Chrome-- دوباره، 668 00:35:36,330 --> 00:35:41,570 این است که چرا ما عاشق Chrome-- من فکر می کنم فایرفاکس یا سافاری، 669 00:35:41,570 --> 00:35:44,300 این چیزی که آسان به است مرورگرهای مختلف google-- دارند 670 00:35:44,300 --> 00:35:46,917 پشتیبانی های مختلف برای که رابط های برنامه کاربردی آنها اجرا شده است. 671 00:35:46,917 --> 00:35:49,875 اما اگر شما می خواهید را به برق وصل یک صفحه کلید و کار با این اطلاعات، 672 00:35:49,875 --> 00:35:52,850 نوع ارسال صفحه کلید اطلاعات را به کامپیوتر 673 00:35:52,850 --> 00:35:57,620 و سپس استفاده از آن آنلاین، این API است که در آن شما می شود، کاری است که. 674 00:35:57,620 --> 00:35:58,150 >> خنک. 675 00:35:58,150 --> 00:35:58,710 باشه. 676 00:35:58,710 --> 00:36:01,320 بنابراین، سرعت در حال حرکت در اینجا. 677 00:36:01,320 --> 00:36:03,310 چگونه در زمان کار می کنیم؟ 678 00:36:03,310 --> 00:36:04,210 >> SPEAKER 1: درباره 15. 679 00:36:04,210 --> 00:36:05,543 >> HUGH ZABRISKIE: 15 دقیقه؟ 680 00:36:05,543 --> 00:36:06,160 باشه خوبه. 681 00:36:06,160 --> 00:36:08,170 بنابراین ما در اینجا پیش نژاد. 682 00:36:08,170 --> 00:36:13,500 >> بنابراین اساسا، نقطه اصلی فکر این به عنوان یک خط لوله 683 00:36:13,500 --> 00:36:16,430 است که هر مرحله در خط لوله یک سری از گره های صوتی است. 684 00:36:16,430 --> 00:36:19,284 685 00:36:19,284 --> 00:36:20,950 منبع ما، اجازه دهید بگویم، یک نوسان ساز است. 686 00:36:20,950 --> 00:36:23,380 ما نیاز به ایجاد یک گره نوسان ساز. 687 00:36:23,380 --> 00:36:25,690 و این تنها نوع از تابع کمی 688 00:36:25,690 --> 00:36:30,460 و همه آنها بر اساس از از زمینه های صوتی در اینجا. 689 00:36:30,460 --> 00:36:32,885 >> مخاطبان باید گفت: این نوسان ساز، معنی 690 00:36:32,885 --> 00:36:37,250 آن را در واقع به معنای واقعی کلمه از دو قطب مختلف به جلو و عقب؟ 691 00:36:37,250 --> 00:36:41,170 >> HUGH ZABRISKIE: نه، آن را مانند نمایندگی های دیجیتال است. 692 00:36:41,170 --> 00:36:42,740 در واقع در C ++ اجرا شده است. 693 00:36:42,740 --> 00:36:46,460 من در واقع مشخصات مطمئن شوید که چگونه آن را در واقع اجرا، 694 00:36:46,460 --> 00:36:48,500 اما همه این است که به عنوان داده های باینری. 695 00:36:48,500 --> 00:36:51,260 696 00:36:51,260 --> 00:36:52,370 در واقع، آره. 697 00:36:52,370 --> 00:36:53,950 که می شود گفت، من می توانم در واقع، اگر شما علاقه مند هستید، 698 00:36:53,950 --> 00:36:56,533 من می توانم شما یک کمی بیشتر ارسال اطلاعات در مورد چگونگی شکل موج 699 00:36:56,533 --> 00:37:00,181 نگهداری می شوند داشتن یک فرمت دیجیتال. 700 00:37:00,181 --> 00:37:00,680 باشه خوبه. 701 00:37:00,680 --> 00:37:03,120 >> بنابراین ما در حال تولید یک تن مثل سینوسی موج یا چیزی شبیه به آن، شاید 702 00:37:03,120 --> 00:37:04,190 440 هرتز. 703 00:37:04,190 --> 00:37:05,830 ما ایجاد یک نوسان ساز. 704 00:37:05,830 --> 00:37:09,180 اگر ما می خواهیم را به مجموعه حجم، ما اتصال هر چیزی که به GainNode، 705 00:37:09,180 --> 00:37:12,500 که ما می تواند با .creategain است. 706 00:37:12,500 --> 00:37:14,250 که مجموعه حجم خود را. 707 00:37:14,250 --> 00:37:17,820 شما می توانید بر روی هر که عبور از دیگر options-- خوب، 708 00:37:17,820 --> 00:37:20,300 بنابراین یک منبع بافر صوتی گره است که در آن شما ممکن است 709 00:37:20,300 --> 00:37:23,660 ذخیره MP3 که شما در لود شده. 710 00:37:23,660 --> 00:37:27,670 >> فیلتر Biquad است برای فیلتر اگر شما می خواهید را به تمام پایه خارج 711 00:37:27,670 --> 00:37:29,630 از یک آهنگ و یا چیزی شبیه به آن. 712 00:37:29,630 --> 00:37:32,450 خدای ناکرده می خواهید را به پایه از یک آهنگ. 713 00:37:32,450 --> 00:37:36,980 و گره AudioDestination است، دوباره، مانند که در آن نهایی ما است. 714 00:37:36,980 --> 00:37:39,980 اگر شما تا به حال به دیدن علاقه مند هستید تمام گزینه های مختلف ممکن است، 715 00:37:39,980 --> 00:37:45,190 فقط به تب بروید و اجازه دهید خودکار کامل آمده است. 716 00:37:45,190 --> 00:37:48,690 و اگر شما ایجاد کند، شما همه را ببینید چیزهای مختلف است که شما می توانید ایجاد کنید. 717 00:37:48,690 --> 00:37:50,398 شما می توانید پویا ایجاد پردازنده اسکریپت، 718 00:37:50,398 --> 00:37:52,940 من حتی نمی دانند چه که است، برای مخلوط کردن ادغام کانال 719 00:37:52,940 --> 00:37:55,930 و نفاق انداز ورود کانال و تمام. 720 00:37:55,930 --> 00:37:56,430 خنک. 721 00:37:56,430 --> 00:37:59,560 722 00:37:59,560 --> 00:38:01,390 >> پس این است که فقط یک نمونه ای از یک خط لوله. 723 00:38:01,390 --> 00:38:03,580 بنابراین ما باید سه منبع در آینده. 724 00:38:03,580 --> 00:38:06,830 شاید این شکل موج ها، شاید این MP3 ها هستند. 725 00:38:06,830 --> 00:38:08,740 یکی از رفتن را از طریق فیلتر، یک دیگر را به 726 00:38:08,740 --> 00:38:12,404 گرفتن تحریف دیگر سوژه متحرک از روبرو یکی از چپ و راست. 727 00:38:12,404 --> 00:38:15,320 شما می توانید تمام انواع چیزهای انجام و همه آنها در اطراف با هم مخلوط، 728 00:38:15,320 --> 00:38:18,880 و پس از آن بیرون می آید صوتی در پایان، به عنوان مقصد. 729 00:38:18,880 --> 00:38:22,720 این یک نمونه از آنچه که بیشتر پیچیده وب کد صوتی نظر می رسد. 730 00:38:22,720 --> 00:38:26,720 شما در حال ایجاد این اشیاء مختلف حق here-- 731 00:38:26,720 --> 00:38:27,706 من مطمئن هستم که این نیست. 732 00:38:27,706 --> 00:38:29,120 نه، آن در زوم است. 733 00:38:29,120 --> 00:38:29,620 باشه. 734 00:38:29,620 --> 00:38:31,257 >> SAM سبز: شما کنترل، حرکت کردن. 735 00:38:31,257 --> 00:38:32,590 HUGH ZABRISKIE: کنترل Scroll-- 736 00:38:32,590 --> 00:38:33,000 SAM سبز: نه، نه. 737 00:38:33,000 --> 00:38:33,500 کنترل-- 738 00:38:33,500 --> 00:38:36,540 739 00:38:36,540 --> 00:38:38,140 >> HUGH ZABRISKIE: اوه، کنترل، حرکت؟ 740 00:38:38,140 --> 00:38:38,780 اوه، مارپیچ. 741 00:38:38,780 --> 00:38:41,480 آره. 742 00:38:41,480 --> 00:38:42,240 وای، نه، نه. 743 00:38:42,240 --> 00:38:42,740 باشه. 744 00:38:42,740 --> 00:38:46,090 من نمی خواهد انجام دهد. 745 00:38:46,090 --> 00:38:48,300 >> پس بله، در اولین بار از این بخش اینجا، شما ببینید 746 00:38:48,300 --> 00:38:52,720 ما در حال ایجاد این مختلف گره از زمینه. 747 00:38:52,720 --> 00:38:54,980 ما فقط آنها را چیدمان با هم در بخش دوم 748 00:38:54,980 --> 00:38:56,980 توسط این تابع به نام اتصال. 749 00:38:56,980 --> 00:38:58,830 این یک واقعا کلیدی تابع در وب صوتی. 750 00:38:58,830 --> 00:39:01,930 این فقط بدان معناست هنگامی که شما انجام چیزی با صدای در یک گره، 751 00:39:01,930 --> 00:39:03,705 تصویب آن را به گره بعدی. 752 00:39:03,705 --> 00:39:05,830 بنابراین ما باید به منبع، آن را متصل به تجزیه و تحلیل، 753 00:39:05,830 --> 00:39:09,140 تجزیه و تحلیل می کند چیزی با آن، آن را به اعوجاج می رود، و به همین ترتیب، 754 00:39:09,140 --> 00:39:12,725 و به مقصد در پایین سمت راست است. 755 00:39:12,725 --> 00:39:13,225 خنک. 756 00:39:13,225 --> 00:39:14,640 خوب، پس ما را به در حال حرکت. 757 00:39:14,640 --> 00:39:17,180 >> pipeline-- دوباره، این هستند خطوط لوله رایج ترین، 758 00:39:17,180 --> 00:39:21,300 بنابراین ما در مورد تمام این چیزهایی مانند صحبت اعوجاج، سوژه متحرک از روبرو، همه این مسائل. 759 00:39:21,300 --> 00:39:24,280 اگر شما واقعا علاقه مند هستید در استفاده از چیزهایی ابزارهای نرم افزار، 760 00:39:24,280 --> 00:39:25,820 کسانی که احتمالا به شما علاقه. 761 00:39:25,820 --> 00:39:27,740 اگر نه، شاید شما فقط می خواهم به بازی صدا، 762 00:39:27,740 --> 00:39:29,990 یا شاید شما فقط می خواهید مجموعه ای از حجم در صدا. 763 00:39:29,990 --> 00:39:35,270 آن دو مرتب سازی بر رایج ترین خطوط لوله در تولید صدا. 764 00:39:35,270 --> 00:39:38,640 >> باز هم، راه شما می توانید آن را به عنوان یک oscillator-- بنابراین، اجازه دهید 765 00:39:38,640 --> 00:39:42,460 یک نسخه ی نمایشی که در اینجا ببینید. 766 00:39:42,460 --> 00:39:47,090 767 00:39:47,090 --> 00:39:52,225 بنابراین ما قصد داریم برای ایجاد یک زمینه صوتی ساده در اینجا، 768 00:39:52,225 --> 00:39:54,350 و از آن ما در حال رفتن ایجاد نوسان ساز ما است. 769 00:39:54,350 --> 00:39:58,620 به طوری که است، دوباره، ما فقط در حال رفتن به پاسخ درست نوسان ساز. 770 00:39:58,620 --> 00:40:07,030 ما قصد داریم برای تنظیم یک فرکانس در که، 440 هرتز، مورد علاقه همه است. 771 00:40:07,030 --> 00:40:13,290 سپس ما متصل است که به مقصد point-- است که گوینده، به طوری که 772 00:40:13,290 --> 00:40:15,750 مقصد زمینه. 773 00:40:15,750 --> 00:40:21,400 در نهایت، ما فقط می گویند، صفر شروع ثانیه از حال حاضر، و ما باید صدا؟ 774 00:40:21,400 --> 00:40:22,400 >> [زنگ] 775 00:40:22,400 --> 00:40:24,980 >> HUGH ZABRISKIE: اینجا می رویم. 776 00:40:24,980 --> 00:40:25,940 این فقط یک موج سینوسی است. 777 00:40:25,940 --> 00:40:26,440 باشه خوبه. 778 00:40:26,440 --> 00:40:28,274 و سپس ما را متوقف کند. 779 00:40:28,274 --> 00:40:30,520 >> مخاطبان: از کجا که بازخورد آمده است؟ 780 00:40:30,520 --> 00:40:31,250 >> HUGH ZABRISKIE: بازخورد؟ 781 00:40:31,250 --> 00:40:32,458 اوه، احتمالا میکروفن است. 782 00:40:32,458 --> 00:40:34,221 783 00:40:34,221 --> 00:40:35,470 پس بله، این که چگونه شما آن را انجام. 784 00:40:35,470 --> 00:40:37,261 و در واقع، اگر من نگه آن در حال اجرا، شما می 785 00:40:37,261 --> 00:40:39,540 می تواند فرکانس، ارزش آن را به عنوان در حال اجرا، 786 00:40:39,540 --> 00:40:43,320 به طوری که یک چیز سرگرم کننده را به بازی در اطراف است. 787 00:40:43,320 --> 00:40:44,930 خنک. 788 00:40:44,930 --> 00:40:46,600 که یکی از دوست داشتنی به ارائه همیشه. 789 00:40:46,600 --> 00:40:48,792 >> SAM سبز: ما نمی در مورد آن فکر می کنم، آیا ما؟ 790 00:40:48,792 --> 00:40:50,500 HUGH ZABRISKIE: آره، که یکی از تند و زننده است. 791 00:40:50,500 --> 00:40:53,249 بنابراین، بافر loading-- من یک را نشان می دهد به عنوان مثال از که در پایان. 792 00:40:53,249 --> 00:40:55,090 که در حال بارگذاری یک MP3. 793 00:40:55,090 --> 00:40:58,880 و میکروفون، شما با استفاده فقط یک تابع نام Navigator.getUserMedia () 794 00:40:58,880 --> 00:41:03,240 برای درخواست دسترسی به کاربر میکروفون برای این اطلاعات است. 795 00:41:03,240 --> 00:41:05,610 >> در اینجا فیلتر، من فقط نگه داشتن در حال حرکت از این. 796 00:41:05,610 --> 00:41:08,600 این سطح بسیار بالا است، اما فیلتر فقط شما اجازه می دهد تا 797 00:41:08,600 --> 00:41:16,154 >> [بوق] 798 00:41:16,154 --> 00:41:18,320 تصفیه آب و تصفیه همچنین اجازه می دهد تا شما برای ایجاد چیز مثل صورتی 799 00:41:18,320 --> 00:41:20,050 سر و صدا، سر و صدا قهوه ای، سر و صدا سفید. 800 00:41:20,050 --> 00:41:24,330 اگر می خواهید ایجاد سر و صدا خالص است، که بعضی از افراد به یک ظرف غذا به اطراف با، 801 00:41:24,330 --> 00:41:27,490 شما می توانید وب سایت های صوتی استفاده فیلتر برای انجام این کار. 802 00:41:27,490 --> 00:41:30,039 >> صوتی Panning-- بنابراین تصور کنید اگر شما در حال نوشتن یک بازی 803 00:41:30,039 --> 00:41:32,330 و شما می خواهید صدا را به صدا مانند آن را آینده، مانند، 804 00:41:32,330 --> 00:41:36,090 تیراندازی در سراسر صفحه نمایش، شما می توانید از سوژه متحرک از روبرو صوتی استفاده کنید 805 00:41:36,090 --> 00:41:39,770 برای ایجاد این نوع از مخروط، که like-- آن mathy بسیار است، 806 00:41:39,770 --> 00:41:41,850 اما در واقع واقعا سرد اگر شما آن کار می کنند، 807 00:41:41,850 --> 00:41:44,500 و در برخی خوب وجود دارد آموزش در آن من می توانم شما ارسال کنید. 808 00:41:44,500 --> 00:41:46,400 در واقع، شما می تواند به نوعی از صدا ایجاد 809 00:41:46,400 --> 00:41:50,480 از چیزی که توسط در راه 3D. 810 00:41:50,480 --> 00:41:57,350 و اگر شما علاقه DJ، شما می توانید شروع به مخلوط کردن و عبور از آهنگ محو شدن است. 811 00:41:57,350 --> 00:42:01,260 >> این تنها برخی بسیار اساسی کد، اساسا آنچه که من قبل از انجام. 812 00:42:01,260 --> 00:42:06,140 این مجموعه حجم نوسان ساز، بنابراین ما ایجاد نوسان ساز ما 813 00:42:06,140 --> 00:42:07,380 که شکل موج ایجاد می کند. 814 00:42:07,380 --> 00:42:09,940 ما در ایجاد GainNode ما، تنظیم فرکانس ما، 815 00:42:09,940 --> 00:42:14,170 و سپس اتصال نوسانگر به GainNode، که پس از آن اساسا این تغییرات 816 00:42:14,170 --> 00:42:16,760 چه مقدار سیگنال از طریق مجاز است. 817 00:42:16,760 --> 00:42:20,467 اما در واقع، آن را یک دیجیتال چیزی، پس از آن بیشتر just-- آره. 818 00:42:20,467 --> 00:42:23,550 این چیزی است که در واقع اتفاق افتاده است، اما این چیزی است که در زندگی واقعی اتفاق می افتد 819 00:42:23,550 --> 00:42:24,393 با به دست آورید. 820 00:42:24,393 --> 00:42:27,258 >> مخاطبان: --quantization پارامتر حجم؟ 821 00:42:27,258 --> 00:42:28,174 HUGH ZABRISKIE: با عرض پوزش. 822 00:42:28,174 --> 00:42:30,360 مخاطبان: آیا این یک پارامتر حجم کوانتیزه؟ 823 00:42:30,360 --> 00:42:31,840 HUGH ZABRISKIE: آره. 824 00:42:31,840 --> 00:42:34,620 و این یک چیز من واقعا است کمبود در دانش من، 825 00:42:34,620 --> 00:42:38,010 چگونه کار می کند افزایش در سطح های دیجیتال است. 826 00:42:38,010 --> 00:42:40,140 من با واقعی می دانم سیگنال، آن را اساسا 827 00:42:40,140 --> 00:42:45,120 چقدر کنترل شما تقویت سیگنال قرار دارند. 828 00:42:45,120 --> 00:42:47,017 پس آره. 829 00:42:47,017 --> 00:42:50,100 من شما را اطلاعات بیشتر در مورد ارسال که، چون من می خواهم در واقع کنجکاو می شود 830 00:42:50,100 --> 00:42:51,099 به دانستن بیشتر در مورد آن. 831 00:42:51,099 --> 00:42:54,090 اما اساسا پارامترهای هستند، یکی از fold-- است 832 00:42:54,090 --> 00:42:59,690 signal-- بلندتر و صفر است هیچ سیگنال، یا شما هر گونه صدا را نمی شنوند. 833 00:42:59,690 --> 00:43:03,150 ما هم نسخه ی نمایشی برای جست و خیز که به دلیل آن را اساسا آنچه که من قبل از انجام. 834 00:43:03,150 --> 00:43:07,630 و دوباره، Context.Destination گره مقصد صوتی می باشد. 835 00:43:07,630 --> 00:43:08,360 عالی، OK. 836 00:43:08,360 --> 00:43:10,470 >> بنابراین من قصد دارم به انجام سریع دو دموی. 837 00:43:10,470 --> 00:43:11,760 چگونه در زمان کار می کنیم؟ 838 00:43:11,760 --> 00:43:12,640 >> SPEAKER 1: حدود 10 دقیقه. 839 00:43:12,640 --> 00:43:13,130 >> HUGH ZABRISKIE: 10 دقیقه؟ 840 00:43:13,130 --> 00:43:13,630 عالی! 841 00:43:13,630 --> 00:43:14,320 عالی. 842 00:43:14,320 --> 00:43:19,010 >> بنابراین یکی از اولین من قصد دارم به انجام، آن را به نام آهنگ مورد علاقه من. 843 00:43:19,010 --> 00:43:22,410 بنابراین این فقط یک کمی HTML جاوا اسکریپت. 844 00:43:22,410 --> 00:43:25,510 ما در حال رفتن به دو دکمه در صفحه بازی آهنگ مورد علاقه من 845 00:43:25,510 --> 00:43:29,192 و متوقف کردن آهنگ مورد علاقه من. 846 00:43:29,192 --> 00:43:30,180 من این را تغییر دهید. 847 00:43:30,180 --> 00:43:32,110 >> مخاطبان: میکروفون خود را بپوشانید. 848 00:43:32,110 --> 00:43:33,430 >> HUGH ZABRISKIE: آره. 849 00:43:33,430 --> 00:43:36,300 و من در اینجا لود شده یک اسکریپت که basically-- 850 00:43:36,300 --> 00:43:38,520 و این است که واقعا مفید برای بارگذاری یک MP3، 851 00:43:38,520 --> 00:43:41,820 بنابراین این فقط باعث می شود در حال بارگذاری راه MP3 های سریع تر است. 852 00:43:41,820 --> 00:43:44,180 آن را اساسا تنها یک لفاف بسته بندی. 853 00:43:44,180 --> 00:43:48,737 این فقط باعث می شود روند بارگذاری در MP3 ها بسیار سریع تر، 854 00:43:48,737 --> 00:43:51,570 در غیر این صورت شما با استفاده از درخواست HTTP، نوع مانند آنچه که ما انجام 855 00:43:51,570 --> 00:43:53,950 در قطعه فعلی را با سرور. 856 00:43:53,950 --> 00:43:55,950 این واقعا زشت، شما نمی خواهید به انجام آن است. 857 00:43:55,950 --> 00:44:04,110 >> پس این مرد، بوریس Smus، نوشت: یک واقعا ابزار کوچک مفید به نام BufferLoader. 858 00:44:04,110 --> 00:44:08,780 همه شما باید انجام است که به سادگی عبور از آن زمینه، شما آن را list-- عبور 859 00:44:08,780 --> 00:44:11,327 و یا، آره، یک لیست در جاوا اسکریپت است؟ 860 00:44:11,327 --> 00:44:12,160 SAM سبز: یک آرایه. 861 00:44:12,160 --> 00:44:14,201 HUGH ZABRISKIE: آه، آن است یک آرایه، درست است. 862 00:44:14,201 --> 00:44:18,660 این یک آرایه از مسیرهای است به فایل های مختلف. 863 00:44:18,660 --> 00:44:21,990 و سپس آن را یک تابع منتقل می کند. 864 00:44:21,990 --> 00:44:25,530 این پاسخ به تماس ما صحبت می کردند است در مورد با بارگذاری ناهمگام. 865 00:44:25,530 --> 00:44:28,720 که خواهد شد به نام هنگامی که فایل های لود می شود. 866 00:44:28,720 --> 00:44:33,780 و تابع است که نامیده می شود که فایل بارگذاری شده به عنوان یک محیط طول می کشد 867 00:44:33,780 --> 00:44:35,840 آرایه ای از بافر پر است. 868 00:44:35,840 --> 00:44:37,990 به طوری که در اینجا رخ می دهد. 869 00:44:37,990 --> 00:44:41,180 در واقع، BufferList است رفتن به یکی value-- 870 00:44:41,180 --> 00:44:46,380 و یا آن را به یک آرایه از طول، است که در آن در شاخص 871 00:44:46,380 --> 00:44:51,320 صفر تمام فایل های لود شده از MP3. 872 00:44:51,320 --> 00:44:53,320 پس آنچه که من انجام وقتی که من به پایان برسد در حال بارگذاری است، من به سادگی 873 00:44:53,320 --> 00:44:57,430 ایجاد یک منبع بافر، که یک گره منبع بافر صوتی است. 874 00:44:57,430 --> 00:45:03,410 گام بعدی این است که من در بار source.buffer به عنوان بافر کامل لود شده 875 00:45:03,410 --> 00:45:06,740 از BufferList-- آن را در بسیاری از buffers-- 876 00:45:06,740 --> 00:45:10,255 و پس از آن شما را در ارتباط صوتی است که بافر به مقصد. 877 00:45:10,255 --> 00:45:12,380 بنابراین آنچه در آن را به انجام فقط به سادگی قرار دادن MP3 878 00:45:12,380 --> 00:45:15,260 مستقیم از طریق به خروجی، و شروع به آن را بلافاصله 879 00:45:15,260 --> 00:45:18,010 پس از گرفتن این تماس. 880 00:45:18,010 --> 00:45:21,660 >> سرد، پس بیایید ببینید این اتفاق می افتد در عمل است. 881 00:45:21,660 --> 00:45:24,490 من [نامفهوم] در اینجا، بیایید ببینید. 882 00:45:24,490 --> 00:45:26,430 بنابراین من فقط رفتن به شروع یک سرور عمومی. 883 00:45:26,430 --> 00:45:28,660 این چیزی است که که شما نیاز به انجام اگر شما 884 00:45:28,660 --> 00:45:32,490 ساخت درخواست برای فایل های در حال بارگذاری. 885 00:45:32,490 --> 00:45:34,140 من قصد دارم برای شروع یک سرور عمومی. 886 00:45:34,140 --> 00:45:38,200 این است که اساسا کل خود را PSET در حال حاضر در یک خط، 887 00:45:38,200 --> 00:45:43,930 اما آن را فقط شروع سرور روی پورت 80/80. 888 00:45:43,930 --> 00:45:47,300 بنابراین ما در اینجا، ما رفتن به بار 80/80، 889 00:45:47,300 --> 00:45:49,110 ما قصد داریم برای رفتن به آهنگ مورد علاقه من. 890 00:45:49,110 --> 00:45:51,660 بنابراین اگر من ضربه "بازی من آهنگ های مورد علاقه "در حال حاضر، 891 00:45:51,660 --> 00:45:53,964 آن را به بار من آهنگ های مورد علاقه و بازی it-- 892 00:45:53,964 --> 00:45:55,880 [MUSIC - ایگلز، "زندگی در FAST  LANE "] 893 00:45:55,880 --> 00:46:00,490 --which اتفاق می افتد به "زندگی در خط سرعت "توسط The Eagles. 894 00:46:00,490 --> 00:46:06,346 در حال حاضر، من می توانم ضربه "توقف من آهنگ های مورد علاقه "و پخش آن را. 895 00:46:06,346 --> 00:46:09,160 >> [MUSIC - ایگلز، "زندگی در FAST  LANE "] 896 00:46:09,160 --> 00:46:18,340 >> و اگر بروم به کنسول، به دلیل من یک متغیر جهانی بیش از اینجا استفاده می شود 897 00:46:18,340 --> 00:46:23,390 برای پیگیری این مقدار، آن را در واقع در حال حاضر در کنسول رسمیت شناخته شود. 898 00:46:23,390 --> 00:46:25,160 بنابراین آن را خودکار ایجاد برای من. 899 00:46:25,160 --> 00:46:29,991 بنابراین این چیزی است که بازی در حال حاضر، و من به سادگی می توانید تماس بگیرید source.stop () 900 00:46:29,991 --> 00:46:30,490 در آن. 901 00:46:30,490 --> 00:46:34,930 902 00:46:34,930 --> 00:46:35,860 خوب، شما می دانید چه؟ 903 00:46:35,860 --> 00:46:39,760 فقط پس شما بچه ها شنیده ام این song-- شما ممکن است این آهنگ را تشخیص دهد. 904 00:46:39,760 --> 00:46:41,801 >> [MUSIC - ریک Astley، "هرگز دیگه دادن  شما تا "] 905 00:46:41,801 --> 00:46:42,299 906 00:46:42,299 --> 00:46:44,215 [MUSIC - ایگلز، "زندگی در FAST  LANE "] 907 00:46:44,215 --> 00:46:46,195 ما در حال حاضر تمام Rickrolled شده است. 908 00:46:46,195 --> 00:46:50,155 OK، بزرگ، در حال حرکت. 909 00:46:50,155 --> 00:46:51,160 خنک. 910 00:46:51,160 --> 00:46:54,554 پس این است که اساسا یک مثال از چگونه شما می توانید یک MP3 بار file-- 911 00:46:54,554 --> 00:46:56,470 [MUSIC - ایگلز، "زندگی در FAST  LANE "] 912 00:46:56,470 --> 00:46:59,590 --and پخش آن، و متوقف کردن و شروع آن است. 913 00:46:59,590 --> 00:47:03,008 من می توانم انجام داده اند خیلی بیشتر [نامفهوم] 914 00:47:03,008 --> 00:47:07,570 >> یکی از آخرین من انجام است، من به شما یک [نامفهوم] نشان می دهد. 915 00:47:07,570 --> 00:47:18,070 >> [موسیقی] 916 00:47:18,070 --> 00:47:21,800 >> این ogg.wave.mp3 مانند. 917 00:47:21,800 --> 00:47:26,450 من فکر می کنم، اگر درست به یاد داشته باشید، من به برخی از مسائل با .M4A اجرا شود، 918 00:47:26,450 --> 00:47:27,721 اما من مطمئن هستم که نیستم. 919 00:47:27,721 --> 00:47:28,470 من فکر می کنم mp3.wave-- 920 00:47:28,470 --> 00:47:28,930 921 00:47:28,930 --> 00:47:30,971 >> [MUSIC - ریک Astley، "هرگز دیگه دادن  شما تا "] 922 00:47:30,971 --> 00:47:35,930 923 00:47:35,930 --> 00:47:36,500 >> باشه عالیه. 924 00:47:36,500 --> 00:47:37,625 من باید گفت که. 925 00:47:37,625 --> 00:47:40,570 به هر حال، سلام. 926 00:47:40,570 --> 00:47:43,430 927 00:47:43,430 --> 00:47:45,490 بنابراین ما باید این را باز کنید. 928 00:47:45,490 --> 00:47:52,320 بنابراین در حال حاضر تمام من است، من اساسا ایجاد نحو اساسی برای ایجاد موسیقی. 929 00:47:52,320 --> 00:47:57,610 بنابراین اگر من چیزی شبیه به اضافه G4 در 1 2، آنچه که به معنی این است که، 930 00:47:57,610 --> 00:48:00,950 اضافه کردن توجه داشته باشید پیانو، G4، که چهارمین G است 931 00:48:00,950 --> 00:48:02,680 تا بر روی پیانو از پایین. 932 00:48:02,680 --> 00:48:05,930 بنابراین این نوع از MIDI است صحبت می کنند، بنابراین برای کسانی که بر اساس موسیقی، 933 00:48:05,930 --> 00:48:07,860 این یادداشت فقط MIDI است. 934 00:48:07,860 --> 00:48:10,090 >> رسید که در G از C میانه، درست است؟ 935 00:48:10,090 --> 00:48:11,840 >> HUGH ZABRISKIE: این G است بالا C میانه، درست است. 936 00:48:11,840 --> 00:48:12,470 >> مخاطبان: بالاتر از وسط C. 937 00:48:12,470 --> 00:48:13,345 >> HUGH ZABRISKIE: آره. 938 00:48:13,345 --> 00:48:14,340 در واقع، بله. 939 00:48:14,340 --> 00:48:16,131 من فکر می کنم در واقع ساخته شده آن را به یکی [نامفهوم]، 940 00:48:16,131 --> 00:48:18,860 بنابراین این ممکن است یک اکتاو بالا که. 941 00:48:18,860 --> 00:48:20,070 بنابراین اجازه دهید را ببینید. 942 00:48:20,070 --> 00:48:21,152 اگر من ضربه Play-- 943 00:48:21,152 --> 00:48:22,110 [توجه PIANO تکراری] 944 00:48:22,110 --> 00:48:23,200 --we're رفتن به شنیدن این که. 945 00:48:23,200 --> 00:48:25,700 ایده این است که آن را به اجرا درست مثل یک خط فرمان را، 946 00:48:25,700 --> 00:48:27,510 بنابراین اگر من بالا و پایین بر روی صفحه کلید من، شما 947 00:48:27,510 --> 00:48:31,550 می تواند به عقب برگردد قبلی دستورات است که بسیار مفید است. 948 00:48:31,550 --> 00:48:35,136 و در زیر لیست من از آهنگ، که همه در حال اجرا در حلقه. 949 00:48:35,136 --> 00:48:38,260 >> رسید شما فرض شد 88 کلید صفحه کلید که، درست است؟ 950 00:48:38,260 --> 00:48:41,051 >> HUGH ZABRISKIE: سوال بود، من فرض یک صفحه کلید 88 کلید، 951 00:48:41,051 --> 00:48:41,990 و بله، من هستم. 952 00:48:41,990 --> 00:48:45,030 من چه من است اساسا در زمان نمونه 88 953 00:48:45,030 --> 00:48:46,970 از پیانو، یکی برای هر توجه داشته باشید. 954 00:48:46,970 --> 00:48:49,180 و به این ترتیب هر بار که شما از هم اکنون در شنیدن توجه داشته باشید، 955 00:48:49,180 --> 00:48:57,550 است که در واقع یک حلقه است که به نظر می رسد like-- این گرفتن در حلقه بازی، 956 00:48:57,550 --> 00:49:00,120 بنابراین برای هر توجه داشته باشید، این در حال اجرا است. 957 00:49:00,120 --> 00:49:02,860 چه اتفاقی می افتد، من ایجاد یک بافر دوباره، 958 00:49:02,860 --> 00:49:06,010 من ایجاد یک گره به دست آوردن به مجموعه ای از حجم. 959 00:49:06,010 --> 00:49:08,240 این فقط یک واقعا راه پیچیده و گفت من 960 00:49:08,240 --> 00:49:10,550 ذخیره بافر در یک source.buffer. 961 00:49:10,550 --> 00:49:13,160 من آن را افزایش می دهد، من اتصال آن به دست آوردن، 962 00:49:13,160 --> 00:49:15,576 افزایش به متصل خروجی، و سپس من آن را بازی کند. 963 00:49:15,576 --> 00:49:20,735 به طوری که نوع فرایند است مصرف در یک منبع بافر شده است. 964 00:49:20,735 --> 00:49:24,820 >> رسید می تواند به شما در واقع را که صدای خشک و آن را خیس [نامفهوم]؟ 965 00:49:24,820 --> 00:49:26,260 >> HUGH ZABRISKIE: شما می توانید، آره. 966 00:49:26,260 --> 00:49:29,260 مجدد فعل وجود دارد، وجود دارد تاخیر، اعوجاج. 967 00:49:29,260 --> 00:49:33,260 شما اساسا می توانید هر چیزی را در بین که در ساندویچ of-- خوب، 968 00:49:33,260 --> 00:49:37,660 خط لوله یک استعاره بهتر است، اما شما می توانید هر چیزی را در آن اضافه کنید. 969 00:49:37,660 --> 00:49:38,200 خنک. 970 00:49:38,200 --> 00:49:40,280 >> بنابراین من نسخه ی نمایشی پایان در اینجا به شما حس را 971 00:49:40,280 --> 00:49:46,390 فقط تعداد گسترده ای از بار شما می توانید آن تابع همه در یک بار اجرا کنید. 972 00:49:46,390 --> 00:49:49,280 بنابراین من قصد دارم برای حذف این. 973 00:49:49,280 --> 00:49:59,110 من قصد دارم برای ایجاد یک ژنراتور that-- اساسا چه does-- این است که واقعا 974 00:49:59,110 --> 00:50:04,220 نوع syntax-- پیچیده اما آن را رفتن به تولید یادداشت در پرواز، 975 00:50:04,220 --> 00:50:06,601 و فقط شروع به بازی آنها را به عنوان آن را به آنها ارزیابی می کند. 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 >> بنابراین ما فقط می توانید یک موسیقی کمی را در اینجا. 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 >> پس چه این دستور می کند، برای مثال، 982 00:50:41,470 --> 00:50:46,910 آن کسانی که سه نت برای طول می کشد پیانو و سپس آنها را در B3. 983 00:50:46,910 --> 00:50:48,660 این ترکیب ممکن است کمی بیشتر حس 984 00:50:48,660 --> 00:50:50,590 به کسانی که پس زمینه موسیقی در اینجا. 985 00:50:50,590 --> 00:50:55,180 986 00:50:55,180 --> 00:50:56,551 >> من می توانم یک طبل ضربه اضافه کنید. 987 00:50:56,551 --> 00:50:57,050 من میتونم-- 988 00:50:57,050 --> 00:50:58,048 >> [INTERPOSING INSTRUMENTS] 989 00:50:58,048 --> 00:50:59,256 >> --just بازی در اطراف با که. 990 00:50:59,256 --> 00:51:12,519 991 00:51:12,519 --> 00:51:13,474 >> بنابراین شما می توانید make-- 992 00:51:13,474 --> 00:51:14,515 [INTERPOSING INSTRUMENTS] 993 00:51:14,515 --> 00:51:15,513 این یکی کمی آزار دهنده است. 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 >> به طوری که به طور تصادفی می افزاید سنج خشک در هر توجه داشته باشید 16، با 16٪ 997 00:51:30,981 --> 00:51:31,481 [نامفهوم]. 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 >> آره، بنابراین راه این works-- آن را همیشه در 4: 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 >> آره، پس از چهار چهارم، و 16/8. 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 >> بنابراین به طور متوسط، شما 60٪ از در یادداشت 16 بازدید. 1008 00:52:33,780 --> 00:52:35,990 >> به هر حال، این تنها نوع برای نشان دادن خاموش 1009 00:52:35,990 --> 00:52:39,780 برخی از چیزهایی که شما می توانید ساخت با API صوتی وب. 1010 00:52:39,780 --> 00:52:43,840 این واقعا قدرتمند، آن را واقعا سریع، و شما می توانید بسیاری از کارهای جالب را 1011 00:52:43,840 --> 00:52:44,340 با آن. 1012 00:52:44,340 --> 00:52:51,260 پس دوباره، هر گونه سوال شما، ایمیل myself-- Hugh-- یا سام، 1013 00:52:51,260 --> 00:52:55,869 و صادقانه، گوگل یک تن از منابع خوب است. 1014 00:52:55,869 --> 00:52:56,660 هر گونه سوال و زمان آخرین؟ 1015 00:52:56,660 --> 00:52:57,970 آره. 1016 00:52:57,970 --> 00:53:00,790 >> رسید بنابراین شما می توانید دسترسی میکروفون ساخته شده در. 1017 00:53:00,790 --> 00:53:03,089 چه اگر شما به خواست استفاده از یک میکروفون بهتر است؟ 1018 00:53:03,089 --> 00:53:05,380 HUGH ZABRISKIE: اگر شما می خواهید برای استفاده از میکروفن بهتر است؟ 1019 00:53:05,380 --> 00:53:11,320 پس دوباره، این بخش از است انتزاعی بین کروم 1020 00:53:11,320 --> 00:53:12,950 و بقیه از کامپیوتر شما. 1021 00:53:12,950 --> 00:53:18,950 مگر اینکه آن را در دسترس از طریق یک API، مانند وب MIDI API، 1022 00:53:18,950 --> 00:53:22,030 شما احتمالا می تواند پیدا کردن برخی از هک، اما به طور کلی به عنوان امکان پذیر نیست. 1023 00:53:22,030 --> 00:53:25,300 >> SAM سبز: شما می توانید also-- تمام کروم می داند 1024 00:53:25,300 --> 00:53:28,820 آن چیزی است که به طور پیش فرض خود را میکروفون است، و به آن دسترسی است. 1025 00:53:28,820 --> 00:53:33,410 بنابراین اگر شما یک میکروفون حال شما می توانید تنظیم به عنوان میکروفون به طور پیش فرض کامپیوتر، 1026 00:53:33,410 --> 00:53:35,990 شما می توانید از آن است که راه دسترسی و آن را احتمالا کار می کنند. 1027 00:53:35,990 --> 00:53:37,490 HUGH ZABRISKIE: این نقطه خوب است. 1028 00:53:37,490 --> 00:53:39,656 من هرگز سعی ام که، ولی شما ممکن است قادر به نوع 1029 00:53:39,656 --> 00:53:45,700 of-- اگر شما سخنران ورودی تغییر مسیر، شما ممکن است قادر به انجام این کار، آره. 1030 00:53:45,700 --> 00:53:48,360 >> هر گونه سوال و زمان آخرین؟ 1031 00:53:48,360 --> 00:53:49,340 خنک. 1032 00:53:49,340 --> 00:53:51,680 خب با تشکر از شما بچه ها خیلی برای تماشای. 1033 00:53:51,680 --> 00:53:52,199 من هیو هستم. 1034 00:53:52,199 --> 00:53:52,990 SAM سبز: من سام هستم. 1035 00:53:52,990 --> 00:53:55,410 HUGH ZABRISKIE: و این CS50. 1036 00:53:55,410 --> 00:53:56,767