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 휴 자브리스키 : 나는 휴입니다. 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 >> 휴 자브리스키 : 차가운. 18 00:00:50,540 --> 00:00:50,990 >> SAM 녹색 : 차가운. 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 >> 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 대한 크롬을 사용하여 자바 스크립트 웹 개발, 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 Mac에서 참조하거나 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 그리고 그에게 매우 편리한 방법 API를 사용하여 주변의 재생을 시작 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 태그 같았다 Internet Explorer가 지원하는 데 사용. 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 그 후, 플래시 , 있었다는 - 어느왔다 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 >> 그리고 그 다음은, 함께 온 후 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 기본 오디오 응용 프로그램, 모두가 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 >> 휴 자브리스키 : 여기에 두 개의 슬라이드가있다. 112 00:05:27,870 --> 00:05:30,245 >> SAM GREEN :이 요약 제한의 일부 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 같은 그들에게 유형 선택 - 의미를 할당 같은, 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 당신이 변수를 쓰면으로 죠 함수의 외부, 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 >> 휴 자브리스키 : 그래. 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 >> 제어 흐름과 같은 의미 IF-else-- 논리들 이예요 및 루프. 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 >> 휴 자브리스키 : 종료하려고? 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 즉, true 또는 false로 평가 그리고 그 여부를 판정한다 182 00:09:03,130 --> 00:09:04,510 우리는 코드 블록을 입력합니다. 183 00:09:04,510 --> 00:09:09,860 그리고 마찬가지로, 우리가 다른-경우, 그리고 우리는 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의,이, 187 00:09:19,600 --> 00:09:22,570 우리는 VAR의 초기화를해야합니다. 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 사람을 누가로부터 것입니다 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 우리는이에 동등 일반 누군지 모르겠지만, 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 다른의 이유 보다 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 그것은 그 예외를 던질 단지하겠습니다 이 딴 단지 방법 중 하나입니다 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 >> 휴 자브리스키 : 그건 그래, 맞아. 233 00:11:37,700 --> 00:11:39,449 마찬가지로, 만약이 너무 적은 인수가 있습니다, 234 00:11:39,449 --> 00:11:42,640 그냥 가지 모두에 널 (null) 제공 인수는 어떤 값이없는 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 녹색 : 그래. 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 C의 printf와 같다 258 00:12:51,262 --> 00:12:52,970 SAM 녹색 : 그래서 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 휴 자브리스키 : 우리는있어 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 >> 그러나 우리는 또한 상황을 상상할 수 우리는 C의 상황을 생각할 수 where-- 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 다른 쪽 ... 대장 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 녹색 : 질문은 그래서,이다 검색 때문에 매개 변수의 수행 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 휴 자브리스키 :할까요 우리는 개체를 만들? 391 00:20:42,870 --> 00:20:44,161 SAM 그린이 : 물론, 이제 그렇게 할 수 있습니다. 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 >> 휴 자브리스키 : 당신 - 입력 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 우리는이를 사용하여 객체를 만들었습니다 , notation-- 중괄호 표기법을 괄호 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 이름 나의 그 수업 재사용 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 확인을 비동기 적으로이 작업을 수행. 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 그것을 할 수 있기 때문 정말 편리합니다 우리는 웹 오디오 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 3 위입니다. 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 그 자바 스크립트를 갖는 하나에 리팩토링 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 >> 휴 자브리스키 : 차가운. 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 휴 자브리스키 : 최고, 그래서 우리는 자바 스크립트에서 이동합니다. 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 당신은 어쩌면 같은 것을 기록 할 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 우리가 경우 기본적으로 무엇은 ... - 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 휴 자브리스키 : 네. 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 종류 짓이야의 성격에 의해, 윌 그것은, 디자인 물건의 종류의 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--하거나, 구를 말아요 - 643 00:34:16,820 --> 00:34:17,870 프로세서 노드. 644 00:34:17,870 --> 00:34:20,730 거기에서 그리고, 당신은 할 수 , 사운드 클라우드에 당신을 그 수출 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 >> 휴 자브리스키 : 네. 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 미디 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 다른 지원 API를 그들은 구현했습니다. 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 >> 스피커 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 그것은 실제로 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 >> 바이 쿼드 필터는 필터링 경우입니다 당신은 밖으로 모든 기지를 먹고 싶어 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 휴 자브리스키 : 제어 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 >> 휴 자브리스키 : 아, 제어, 스크롤? 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 >> 휴 자브리스키 : 여기 우리는 간다. 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 >> SAM 녹색 : 우리는하지 않았다 우리는 그것에 대해 않았다고 생각? 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 즉, 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 콘의이 종류를 만들려면 이는 꽤 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 하지만 실제로, 그것은 디지털의 일,이, 그래 그냥 ... 더 그렇게. 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 청중 : 그것은인가 양자화 된 볼륨 매개 변수? 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 제어 얼마나 당신이있어 신호를 증폭. 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 >> 휴 자브리스키 : 십분? 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 이것은 정말 유용 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 >> 그래서이 사람, 보리스의 SMU는 정말 썼다 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 휴 자브리스키 : 아, 그것이 배열, 맞아. 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 그것은로드 것 내 좋아하는 노래와 그건 ... 플레이 892 00:45:53,964 --> 00:45:55,880 FAST의 독수리, "생명 - [음악  레인"] 893 00:45:55,880 --> 00:46:00,490 을 실현합니다에 "인생 될 일이 이글스에 의해 빠른 차선 ". 894 00:46:00,490 --> 00:46:06,346 지금, 나는 그만 "칠 수있는 내 좋아하는 곡 "그것을 재생. 895 00:46:06,346 --> 00:46:09,160 >> FAST의 독수리, "생명 - [음악  레인"] 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 >> [음악 - 릭 ASTLEY는 "전혀 원하지 GIVE  당신 UP "] 905 00:46:41,801 --> 00:46:42,299 906 00:46:42,299 --> 00:46:44,215 FAST의 독수리, "생명 - [음악  레인"] 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 그래서 이것은 기본적으로의 예입니다 당신은 MP3를로드 할 수있는 방법을 file-- 911 00:46:54,554 --> 00:46:56,470 FAST의 독수리, "생명 - [음악  레인"] 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 >> [음악 - 릭 ASTLEY는 "전혀 원하지 GIVE  당신 UP "] 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 >> 휴 자브리스키 :이 G입니다 중간 C 이상, 맞아. 936 00:48:11,840 --> 00:48:12,470 >> 청중 : 위 중간 C. 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 듣고가는 않네. 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 즉, 실제로 보이는 루프 이는 루프에서 재생지고 그때 엔 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 당신은 기본적으로 아무것도 넣을 수 있습니다 동행입니다 물론 그 샌드위치 사이에, 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 [개재 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 [개재 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 >> [끼워 악기] 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 [끼워 악기] 993 00:51:14,515 --> 00:51:15,513 즉, 하나는 좀 더 짜증나. 994 00:51:15,513 --> 00:51:16,554 [끼워 악기] 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 >> [끼워 악기] 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 [끼워 악기] 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 [끼워 악기] 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 휴 자브리스키 : 당신이 원한다면 더 나은 마이크를 사용 하는가? 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, 웹 미디 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 휴 자브리스키 : 좋은 지적입니다. 1028 00:53:37,490 --> 00:53:39,656 그 시도,하지만 적이 당신은 종류에 할 수 있습니다 1029 00:53:39,656 --> 00:53:45,700 동행입니다 만약 입력 스피커 리디렉션하면 당신은 그래, 그렇게 할 수 있습니다. 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 휴 자브리스키 : 그리고이 CS50입니다. 1036 00:53:55,410 --> 00:53:56,767