1 00:00:00,000 --> 00:00:05,900 2 00:00:05,900 --> 00:00:07,170 >> सैम ग्रीन: हाय, सब लोग। 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 ह्यूग ज़ैब्रिस्की: मैं ह्यूग हूँ। 6 00:00:11,050 --> 00:00:17,420 सैम ग्रीन: और हम आज बात करने के लिए जा रहे हैं जावास्क्रिप्ट और वेब ऑडियो एपीआई के बारे में। 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 ऑडियो एपीआई, क्यों जावास्क्रिप्ट है आप इसके लिए जरूरत है भाषा, 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 और तब के बारे में बात करते हैं एक उच्च स्तर पर ऑडियो एपीआई। 13 00:00:37,290 --> 00:00:41,140 फिर, ह्यूग कुछ के बारे में बात करेंगे ऑडियो उत्पादन के चरणों की 14 00:00:41,140 --> 00:00:45,509 और फिर इस भयानक Sequencer डेमो परियोजना उन्होंने बनाया है और आप कोड को दिखाने के। 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 >> ह्यूग ज़ैब्रिस्की: कूल। 18 00:00:50,540 --> 00:00:50,990 >> सैम ग्रीन: कूल। 19 00:00:50,990 --> 00:00:51,383 >> ह्यूग ज़ैब्रिस्की: कूल। 20 00:00:51,383 --> 00:00:52,170 मैं वापस करेंगे। 21 00:00:52,170 --> 00:00:54,960 >> सैम ग्रीन: तो, सबसे पहली बात। 22 00:00:54,960 --> 00:00:57,840 महान चीज़ों में से एक तो वेब ऑडियो एपीआई के बारे में 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 के लिए क्रोम का उपयोग जावास्क्रिप्ट वेब विकास, 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 अपने मैक पर देखते हैं, या आईडी पर हो सकता है। 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 महान संसाधनों का एक बहुत हैं वहाँ से बाहर वेब ऑडियो एपीआई के बारे में। 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 >> कूल, तो क्यों वेब ऑडियो एपीआई? 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 मूल एचटीएमएल टैग की तरह था इंटरनेट एक्सप्लोरर का समर्थन करने के लिए प्रयोग किया जाता है। 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 और यह एक बुरा सपना समाप्त होता जा रहा बहुत डेवलपर, के लिए। 82 00:04:03,880 --> 00:04:06,230 तो यह है कि एक आड़ था। 83 00:04:06,230 --> 00:04:10,480 >> और फिर उस के साथ आया था के बाद एचटीएमएल ऑडियो टैग, जो 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 चीजों की एक परिणाम के रूप में कि एचटीएमएल में सक्षम था। 87 00:04:22,730 --> 00:04:26,060 तो जब जावास्क्रिप्ट एपीआई, वेब ऑडियो एपीआई, 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 देशी ऑडियो अनुप्रयोगों के लिए, हर कोई जानता है GarageBand like--, 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 हम के बारे में बात करते हैं एपीआई एक छोटा सा बाद में। 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 >> ह्यूग ज़ैब्रिस्की: यहाँ दो स्लाइड्स है। 112 00:05:27,870 --> 00:05:30,245 >> सैम ग्रीन: यह सारांश है सीमाओं में से कुछ की 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 में जावास्क्रिप्ट बनाम में एक रास्ते में सी की तरह भाषा, 120 00:05:49,940 --> 00:05:52,050 चर कि बनाई गई हैं। 121 00:05:52,050 --> 00:05:55,634 सी में तो, हम होने के लिए इस्तेमाल कर रहे हैं हमारे चर टाइप करने के लिए, है ना? 122 00:05:55,634 --> 00:05:57,800 और मुझे पसंद प्रकार मतलब नहीं है उन में टाइप करें, मैं प्रकार मतलब 123 00:05:57,800 --> 00:06:01,900 की तरह उन्हें एक type-- अर्थ प्रदान जैसे, एक पूर्णांक, एक नाव, एक चार। 124 00:06:01,900 --> 00:06:05,210 सी में, हम वास्तव में करने के लिए इस्तेमाल किया गया एक चर बनाने के लिए होने 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 कि सब के सब बहुत इसी तरह लग रहा है यह सी में लगता है जिस तरह करने के लिए 147 00:07:18,400 --> 00:07:24,755 तो चर आम तौर पर scoped रहे हैं एक समारोह के भीतर सर्पाकार भीतर, 148 00:07:24,755 --> 00:07:27,005 और फिर यह भी देखते हैं विश्व स्तर पर scoped चर कि 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 >> के बीच एक अंतर विशेष रूप से जावास्क्रिप्ट और सी, 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 >> ह्यूग ज़ैब्रिस्की: हाँ। 156 00:07:46,330 --> 00:07:49,120 >> सैम ग्रीन: इतना है कि यह भी एक छोटी सी है सी की तुलना में कायरता सा है, 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 और फिर सिर्फ reemphasize करने के लिए, स्थानीय variables-- बनाम वैश्विक 161 00:08:00,540 --> 00:08:03,457 सी के लिए बहुत ही तुम हो सकता एक ही नाम के साथ दो चर, 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 बस सी में की तरह, हम एक हैं एक कोष्टक बयान "," यदि। 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 >> ह्यूग ज़ैब्रिस्की: बाहर निकलने के लिए कोशिश कर रहा? 177 00:08:46,841 --> 00:08:49,770 सैम ग्रीन: नहीं, मैं कर रहा हूँ बस में ज़ूम करने के लिए कोशिश कर रहा है। 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 और इसी तरह, हमारे पास एक और को-, और अगर हम सी में करने के लिए इस्तेमाल कर रहे हैं की तरह सिर्फ एक वरना, 184 00:09:09,860 --> 00:09:14,010 >> तुम भी बहुत सहज होना चाहिए सही छोरों के साथ बल्लेबाजी करना, 185 00:09:14,010 --> 00:09:16,440 उन्होंने यह भी लग रही है क्योंकि सी की तरह एक बहुत लग रहा है। 186 00:09:16,440 --> 00:09:19,600 लेकिन आप फिर से नोटिस कि करेंगे हम बजाय initializations पूर्णांक की, है, 187 00:09:19,600 --> 00:09:22,570 हम वर initializations है। 188 00:09:22,570 --> 00:09:24,650 और मैं तुम्हें लगता है कि बनाने के लिए सावधान रहना होगा 189 00:09:24,650 --> 00:09:28,460 सुनिश्चित करें कि आप मूल्य में परिवर्तन नहीं करते मैं एक पूर्णांक से एक स्ट्रिंग के लिए, 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 किसी के लिए जो एक से जा रहा है सी की पृष्ठभूमि कार्य कर रहे हैं 195 00:09:44,920 --> 00:09:48,070 जावास्क्रिप्ट में, और एक ही रास्ता है लग रहा है कि एक समारोह की घोषणा करने के लिए 196 00:09:48,070 --> 00:09:50,361 सी के समान की तरह है, और उसके बाद एक और एक है कि 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 , जहां की तरह सी की तरह है हम इस एक समारोह है, का कहना है 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-- function-- कि 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 अलग है कि कारण से सी है कि जावास्क्रिप्ट 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 सैम ग्रीन: तो सवाल क्या होता था, 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 >> ह्यूग ज़ैब्रिस्की: यह है कि हाँ, सही है। 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 >> सैम ग्रीन: जो कर सकते हैं वास्तव में, काम हो अगर आप 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 सैम ग्रीन: हाँ। 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 >> ह्यूग ज़ैब्रिस्की: तो console.log सी के लिए printf की तरह है 258 00:12:51,262 --> 00:12:52,970 सैम ग्रीन: तो console.log , printf की तरह है 259 00:12:52,970 --> 00:12:59,240 इसलिए मुझे लगता है ('हैलो') इस console.log है, और मुझे लगता है कि कॉल, स्ट्रिंग "नमस्ते" 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 ह्यूग ज़ैब्रिस्की: हम कर रहे हैं सी में करने के लिए इस्तेमाल किया, 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 >> सैम ग्रीन: तो यह करने के लिए वापस जा रहा कोड की दूसरी पंक्ति example-- 278 00:13:51,420 --> 00:13:55,320 यहाँ मेरे सिर में बहुत मन- boggling है। 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 है कि, च एक तर्क की उम्मीद कर रहा है, 282 00:14:10,170 --> 00:14:12,990 और फिर यह कि कॉल समारोह, एफ, जो 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 च 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-- 314 00:15:59,036 --> 00:16:00,910 हम करना चाहते थे जहां structs के साथ कुछ, 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 तब एल.एन. नामक एक कुंजी, हरे रंग का एक मूल्य के साथ, 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 हम सभी तरह वापस जाने के लिए जा रहे हैं इस उद्देश्य के लिए, एफ एन मूल्य के लिए जाना 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 सैम ग्रीन: सवाल था तो, है पुनर्प्राप्ति क्योंकि पैरामीटर का किया 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 और फिर यह एक प्रविष्टि के लिए लग रही हूँ एफ एन कहा जाता है, और अगर यह पाता है, 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 ह्यूग ज़ैब्रिस्की: चाहिए हम एक वस्तु बनाने के लिए? 391 00:20:42,870 --> 00:20:44,161 सैम ग्रीन: यकीन है, चलो करते हैं। 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 उदाहरण के लिए, और मैं एक वापस मिलता है। 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 >> ह्यूग ज़ैब्रिस्की: आप -दर्ज शिफ्ट करना है। 408 00:21:46,352 --> 00:21:47,643 >> सैम ग्रीन: ओह, यह कष्टप्रद है। 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 >> इसलिए मैं अभी बनाया है इस समारोह में, एफ, कि 416 00:22:12,840 --> 00:22:17,590 चालू करने के लिए जाना जा रहा है वस्तु और प्रिंट this.x1। 417 00:22:17,590 --> 00:22:20,330 तो मैं बस द्वारा च कॉल ही है, कुछ भी नहीं हो रहा है 418 00:22:20,330 --> 00:22:26,970 कोई X1 है क्योंकि वहाँ, ठीक है, ऐसा करने के लिए यह जिक्र है वस्तु में क्षेत्र। 419 00:22:26,970 --> 00:22:39,710 लेकिन, मैं तो x.f = च, और कहते हैं कि अगर मैं x.f () कहते हैं, मैं वापस 1 पाने के लिए जा रहा हूँ। 420 00:22:39,710 --> 00:22:42,990 421 00:22:42,990 --> 00:22:46,530 यही कारण है कि च समारोह अब है वस्तु एक्स के साथ जुड़े, 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 बस की तरह होगा, घुंघराले गले लगा, एसटीआर, पेट, 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 इसके अंदर का पूर्व का निर्माण किया जा रहा है यह एक मूल्य एसटीआर कहा जाता है और एक और मूल्य 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 ठीक है, asynchronously इस ऑपरेशन करते। 469 00:25:31,870 --> 00:25:36,520 इसलिए पसंद है, पृष्ठभूमि में इंतजार, और फिर ऑपरेशन किया जाता है, जब 470 00:25:36,520 --> 00:25:39,420 कॉलबैक फोन function-- कुछ समारोह कॉल, 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 यह सुविधा देता है ऐसा इसलिए है क्योंकि वास्तव में आसान है अमेरिका, वेब ऑडियो एपीआई के साथ बातें करते हैं 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 मैं JavaScript कंसोल उल्लेख किया है। 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 लगाना के लिए वास्तव में उपयोगी बाहर कैसे एक एपीआई का उपयोग करने के लिए। 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-- JavaScript कंसोल एक उदाहरण है 496 00:26:59,760 --> 00:27:05,680 कि, आरईपीएल आर ई पी एल है तो एक 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 और फिर हम सिर्फ लिखने एचटीएमएल फाइल के अंदर जावास्क्रिप्ट। 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 सैम ग्रीन: सवाल था, क्या यह दूसरे से बढ़िया है। 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 है एक ही स्थान में, अपने सीएसएस सब में है एक और जगह है, अपने जावास्क्रिप्ट के सभी 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 कि है- और यह हो जाता है अक्सर एक और फाइल में। 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 पृष्ठों, 529 00:28:47,350 --> 00:28:49,340 और कहा कि जावास्क्रिप्ट होने एक में फिर फैक्टर 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 सैम ग्रीन: ठीक है, शांत। 545 00:29:25,410 --> 00:29:27,200 तो अब वह एपीआई के बारे में बात करने के लिए जा रहा है। 546 00:29:27,200 --> 00:29:28,490 >> ह्यूग ज़ैब्रिस्की: कूल। 547 00:29:28,490 --> 00:29:28,990 धन्यवाद, सैम। 548 00:29:28,990 --> 00:29:30,184 >> सैम ग्रीन: यकीन है। 549 00:29:30,184 --> 00:29:32,600 ह्यूग ज़ैब्रिस्की: बहुत बढ़िया है, इसलिए हम जावास्क्रिप्ट से आगे बढ़ना होगा। 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 >> यह एक एपीआई है, तो यह कुछ है सैम के रूप में कहा कि, बनाया गया है, 556 00:29:52,120 --> 00:29:57,010 सही जावास्क्रिप्ट में आप कंसोल में उपयोग करें। 557 00:29:57,010 --> 00:30:01,020 और यह सिर्फ सी की तरह ++ कोड वास्तव में है कि वास्तव में क्रोम में बनाया गया है 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 एक और बहुत ही सामान्य से एक है, जाहिर है, एक एमपी 3 है। 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 एक app बनाना चाहते थे एक पिच डिटेक्टर की तरह, 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 आप और हो सकता है जैसे कि रिकॉर्ड करना चाहते हैं example-- के लिए, soundcloud के लिए निर्यात 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 अगर हम असल में क्या है- AudioContext अब ठीक JavaScript कंसोल के लिए जाना है, 593 00:31:49,980 --> 00:31:52,740 हम अभी बना सकते हैं। 594 00:31:52,740 --> 00:31:54,040 आरईपीएल का सिर्फ एक उदाहरण है, है ना? 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 ध्वनि करने के लिए शून्य outputs के देखते हैं में आ रहा है, वक्ता के लिए भेजा। 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 लेकिन आम तौर पर, आप बस की तरह कर रहे हैं किसी न किसी रूप में ध्वनि outputting की। 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 ह्यूग ज़ैब्रिस्की: हाँ। 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 >> ह्यूग ज़ैब्रिस्की: प्रो उपकरण के साथ? 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 >> सैम ग्रीन: और है कि इस एपीआई के लिए अद्वितीय नहीं। 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 >> ह्यूग ज़ैब्रिस्की: हाँ। 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 यदि आपके पास एक यूएसबी कीबोर्ड, में खामियों को दूर किया आप वेब बुलाया कुछ का उपयोग कर सकते हैं 666 00:35:30,180 --> 00:35:32,180 मिडी एपीआई, जो हम नहीं करेंगे वास्तव में यहाँ के बारे में बात करते हैं, 667 00:35:32,180 --> 00:35:36,330 लेकिन यह है कि एक और एपीआई है फिर कम से कम Chrome-- में बनाया गया है, 668 00:35:36,330 --> 00:35:41,570 हम Chrome-- प्यार यही कारण है मैं, Firefox या सफारी लगता है 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 और फिर, इस एपीआई कि ऑनलाइन का उपयोग आपको लगता है कि काम किया जाना चाहते हैं, जहां है। 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 >> स्पीकर 1: के बारे में 15। 679 00:36:04,210 --> 00:36:05,543 >> ह्यूग ज़ैब्रिस्की: 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 और कहा कि बस की तरह है थोड़ा function-- की 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 >> ह्यूग ज़ैब्रिस्की: नहीं, यह पसंद है एक डिजिटल प्रतिनिधित्व। 692 00:36:41,170 --> 00:36:42,740 यह वास्तव में सी ++ में लागू किया है। 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 मैं तुम्हें एक छोटे से अधिक भेज सकता है कैसे waveforms के बारे में जानकारी 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 आप में भरी हुई है कि एक एमपी 3 की दुकान। 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 और चैनल splitters और यह सब। 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 हो सकता है कि इन waveforms हैं, शायद इन MP3s हैं। 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 >> सैम ग्रीन: आप नियंत्रण, स्क्रॉल-अप करते हैं। 735 00:38:31,257 --> 00:38:32,590 ह्यूग ज़ैब्रिस्की: नियंत्रण Scroll-- 736 00:38:32,590 --> 00:38:33,000 सैम ग्रीन: नहीं, नहीं। 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 >> ह्यूग ज़ैब्रिस्की: ओह, नियंत्रण, स्क्रॉल? 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 हम सिर्फ उन्हें piecing रहे एक साथ दूसरे भाग में 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 इसलिए हम की तरह इन सभी चीजों के बारे में बात करते हैं विरूपण, panning, यह सब सामान। 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 >> ह्यूग ज़ैब्रिस्की: यहाँ हम चले। 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 >> ह्यूग ज़ैब्रिस्की: प्रतिक्रिया? 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 >> सैम ग्रीन: हम नहीं हम उस के बारे में था लगता है? 790 00:40:48,792 --> 00:40:50,500 ह्यूग ज़ैब्रिस्की: हाँ, कि एक बहुत बुरा एक है। 791 00:40:50,500 --> 00:40:53,249 तो, बफर loading-- मैं एक दिखाता हूँ बहुत अंत में इस बात का उदाहरण है। 792 00:40:53,249 --> 00:40:55,090 यही कारण है कि एक एमपी 3 लोड हो रहा है। 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 >> [Beeping] 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 शंकु के इस तरह बनाने के लिए, जो यह बहुत Mathy है like--, 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 एक 3 डी रास्ते में से कुछ चल रहा है। 810 00:41:50,480 --> 00:41:57,350 आप एक डीजे दिलचस्पी नहीं है और अगर, आप कर सकते हैं मिश्रण शुरू करते हैं और लुप्त होती गीत पार। 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 ह्यूग ज़ैब्रिस्की: क्षमा करें? 822 00:42:28,174 --> 00:42:30,360 दर्शकों: यह एक है quantized मात्रा पैरामीटर? 823 00:42:30,360 --> 00:42:31,840 ह्यूग ज़ैब्रिस्की: हाँ। 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 को नियंत्रित करने के लिए कितना आप कर रहे हैं संकेत amplifying। 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 बहुत बढ़िया, ठीक है। 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 >> स्पीकर 1: के बारे में 10 मिनट। 839 00:43:12,640 --> 00:43:13,130 >> ह्यूग ज़ैब्रिस्की: 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 >> ह्यूग ज़ैब्रिस्की: हाँ। 849 00:43:33,430 --> 00:43:36,300 और मैं यहाँ में भरी हुई है basically-- कि एक स्क्रिप्ट 850 00:43:36,300 --> 00:43:38,520 और यह वास्तव में उपयोगी है एक एमपी 3 लोड करने के लिए, 851 00:43:38,520 --> 00:43:41,820 तो यह सिर्फ बनाता है तेजी से MP3s तरह से लोड हो रहा है। 852 00:43:41,820 --> 00:43:44,180 यह मूल रूप से सिर्फ एक आवरण है। 853 00:43:44,180 --> 00:43:48,737 यह बस की प्रक्रिया बनाता है बहुत तेजी से MP3s में लोड हो रहा है, 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 सैम ग्रीन: एक सरणी। 861 00:44:12,160 --> 00:44:14,201 ह्यूग ज़ैब्रिस्की: ओह, यह है एक सरणी, यह सही है। 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 एमपी 3 के पूरे लोड फ़ाइल शून्य। 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 तो क्या यह करने के लिए जा रहा है बस यूँ ही एमपी 3 डाल दिया जाता है 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 तेजी में ईगल्स, "जीवन - [संगीत  लेन "] 893 00:45:55,880 --> 00:46:00,490 --which में "जीवन में होने वाला है ईगल्स द्वारा फास्ट लेन "। 894 00:46:00,490 --> 00:46:06,346 अब, मैं बंद करो "हिट हो सकता है मेरी पसंदीदा गीत "और यह फिर से खेलना। 895 00:46:06,346 --> 00:46:09,160 >> तेजी में ईगल्स, "जीवन - [संगीत  लेन "] 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 >> [संगीत - रिक एस्ले, "कभी नहीं वाली GIVE  आप ऊपर"] 905 00:46:41,801 --> 00:46:42,299 906 00:46:42,299 --> 00:46:44,215 तेजी में ईगल्स, "जीवन - [संगीत  लेन "] 907 00:46:44,215 --> 00:46:46,195 अब हम सब Rickrolled किया गया है। 908 00:46:46,195 --> 00:46:50,155 ठीक है, महान है, पर घूम रहा है। 909 00:46:50,155 --> 00:46:51,160 कूल। 910 00:46:51,160 --> 00:46:54,554 तो यह मूल रूप से एक उदाहरण है सिर्फ तुम एक एमपी 3 लोड कर सकता कैसे file-- 911 00:46:54,554 --> 00:46:56,470 तेजी में ईगल्स, "जीवन - [संगीत  लेन "] 912 00:46:56,470 --> 00:46:59,590 चार प्रकार यह खेलते हैं, और बंद करो और इसे शुरू करते हैं। 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 >> [संगीत - रिक एस्ले, "कभी नहीं वाली GIVE  आप ऊपर"] 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 मैं ऐसा कुछ करते हैं तो, जी -4 जोड़ने 1 से 2 पर, कि क्या इसका मतलब है कि है, 930 00:47:57,610 --> 00:48:00,950 पियानो नोट, जी -4 जोड़ने जो चौथे जी है 931 00:48:00,950 --> 00:48:02,680 नीचे से पियानो पर। 932 00:48:02,680 --> 00:48:05,930 तो इस मिडी की तरह बात है, इसलिए संगीत आधारित हैं, जो उन लोगों के लिए, 933 00:48:05,930 --> 00:48:07,860 यह सिर्फ मिडी नोट है। 934 00:48:07,860 --> 00:48:10,090 >> दर्शकों: यह है कि जी की मध्य सी की, है ना? 935 00:48:10,090 --> 00:48:11,840 >> ह्यूग ज़ैब्रिस्की: यह जी है मध्य सेल्सियस से ऊपर, यह सही है। 936 00:48:11,840 --> 00:48:12,470 >> दर्शकों: ऊपर मध्यम सी 937 00:48:12,470 --> 00:48:13,345 >> ह्यूग ज़ैब्रिस्की: हाँ। 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 [दोहराए पियानो नोट] 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 >> ह्यूग ज़ैब्रिस्की: सवाल था, मैं एक 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 >> ह्यूग ज़ैब्रिस्की: तुम, हाँ। 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 पियानो] 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 पियानो] 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 इसके लिए उन तीन नोट्स लेता है पियानो और फिर बी 3 पर उन्हें डालता है। 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 उपकरणों] 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 उपकरणों] 993 00:51:14,515 --> 00:51:15,513 यही कारण है कि एक एक छोटे से अधिक कष्टप्रद है। 994 00:51:15,513 --> 00:51:16,554 [Interposing उपकरणों] 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 उपकरणों] 999 00:51:32,522 --> 00:51:40,962 1000 00:51:40,962 --> 00:51:50,400 >> हाँ, तो जिस तरह से इस यह 4 में हमेशा works--: 4। 1001 00:51:50,400 --> 00:51:51,441 [Interposing उपकरणों] 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 उपकरणों] 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 तुम सकता है चीजों में से कुछ वेब ऑडियो एपीआई के साथ निर्माण। 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 ह्यूग ज़ैब्रिस्की: अगर तुम चाहते थे बेहतर माइक्रोफोन का उपयोग करने के लिए? 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 इसके माध्यम से उपलब्ध है, जब तक एक एपीआई, वेब मिडी एपीआई की तरह, 1022 00:53:18,950 --> 00:53:22,030 आप शायद कुछ भाड़े मिल सकता है, लेकिन आम तौर पर के रूप में संभव नहीं। 1023 00:53:22,030 --> 00:53:25,300 >> सैम ग्रीन: आप 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 ह्यूग ज़ैब्रिस्की: यह एक अच्छी बात है। 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 सैम ग्रीन: मैं सैम हूँ। 1035 00:53:52,990 --> 00:53:55,410 ह्यूग ज़ैब्रिस्की: और इस CS50 है। 1036 00:53:55,410 --> 00:53:56,767