Google I/O 2013 – Broadcast Yourself!: Using the YouTube Live APIs to Stream to the World

SATYAJEET SALGAR : 좋습니다 여러분 좋은 오후입니다

여기에 와서 온라인을 시청 해 주셔서 감사합니다 내 이름은 Satyajeet Salgar 다 나는 이브라힘과 함께있다 YouTube Live 플랫폼에 대해 이야기하고 있습니다 YouTube 라이브 API 플랫폼에 대해 조금 이야기 할 것입니다

제작자가하고 있습니다 이브라힘 (Ibrahim)은 API에 대한 세부 정보를 제공하고 너 데모 야 그리고 우리는 질문을 위해 약간의 시간을 절약 할 것입니다 그거 괜찮은가요? 우리는 또한 라이브로부터 질문을 취할 것입니다 Google 포럼 포럼에서 잠재 고객을 스트리밍 온라인을 참조하십시오

그래서 우리는 당신의 질문을 기다리고 있습니다 괜찮아 라이브 스트리밍 데모로 라이브 스트리밍 토크입니다 라이브 스트리밍되지만, 우리는 더 깊이 갈 수 있습니다 누군가 살아있는 우리가

그래서 가능합니다 YouTube 얼마나 많은 사람들이 YouTube를 보았습니까? 지난 달 비디오? 당신은 10 억 인구의 일부입니다 인터넷에 지금있는 사람들 그들은 매달 60 억 시간을 지켜보고 있습니다

플랫폼 전반에 걸쳐 따라서 전세계에서 우리의 의견 중 25 %가 모바일 장치에 있습니다 YouTube는 전 세계에서 가장 큰 검색 엔진이기도합니다 YouTube와 동영상은 YouTube와 참여를 유도하고 위대하게 창출하십시오 귀하의 청중을위한 경험 우리는 특히 라이브를 생각합니다

그래서 YouTube에서의 라이브에 대해 조금 이야기 할 것입니다 얼마나 많은 사람들이이 이미지를 인식합니까? 거의 모든 사람 그러니 10 월 14 일에 펠릭스 바움 가르트 너 (Felix Baumgartner)의 이름으로 오스트리아 신사가 들어 섰다 그 우주 캡슐은 우주로 24 마일 올라가서 내려다 보았다 뉴 멕시코를 넘어서서 뛰어 올랐다

점프는 약 10 분이었고 그는 자유 낙하했습니다 약 4 분 이것은 우리가 인터넷 트래픽을 본 것입니다 그 기간 네

언젠가는 저처럼 두 사람이 언론에 남았습니다 회의 그러나 이것이 최고였습니다 그리고 그 절정에, 82 백만명의 사람들이 조정되었습니다

그리고 5200 만 건의 재생이 있습니다 그것은 라이브 이벤트의 규모와 흥분의 종류입니다 YouTube에서 생성 할 수 있습니다 그건 그렇고, 재미있는 퀴즈 조각, 그 시점에서 – 그 4 분 – 모든 인터넷의 약 8 % 트래픽이 그 비디오였습니다 다행히도, 당신은 공간을 뛰어 넘어 창조 할 필요가 없습니다

멋진 라이브 엔터테인먼트 우리는 톤과 수 많은 파트너가 오늘은 유튜브에 왼쪽 상단에 왼쪽, 축구 강국 때마다 러시아 스파르타 크 모스크바에서 활약하며 라이브 트래픽 러시아 스파이크에서 라이브 스포츠는에 대한 엔터테인먼트를 구축하는 좋은 방법입니다 YouTube, 인도 크리켓 또는 메이저 리그 생중계하는 야구는 국제적으로 게임을 스트리밍합니다

NBA 발달 리그 아니면 누구나 쉽게 찾을 수있는 스포츠입니다 세계 어디서나 찾을 수 있습니다 예를 들어, 호주에서 서핑, 소년 고등학교 인도네시아 축구, 배드민턴, 현지 하키 인도 -이 모든 것 경험은 YouTube에 게시됩니다 잠재 고객이이를 찾고 채널이 YouTube에 잠재 고객을 구축합니다

그러나 스포츠에 대한 우리의 비전은 단순한 게임이 아닙니다 우리는 게임 주변에 수많은 라이브 자료가 있다고 생각합니다 너가 강당에 들어갈 때 터널 캠이야 그 후에 인터뷰인지 여부 이것들은 모두 라이브 스포츠 경험의 일부입니다

얼마나 많은 사람들이 유벤투스가 누구인지 압니까? 그다지 많은 사람들이 좋아, 몇 사람 그래서 유벤투스는 이탈리아 축구 클럽입니다

그들은 리그에서 우승했습니다 클럽이 함께 할 때 생방송입니다 온 마을이 승리를 축하했다 수만명의 사람들이 들어 봤고 그들의 글로벌 팬들도 참여할 수 있습니다 우리는이 톤과 톤의 차원에서 일어나는 것을 봅니다

음악은 또 다른 훌륭한 음악입니다 울트라 뮤직 마이애미 축제, 일본의 코 첼라, AKB48, 또는 그의 새 앨범을 데뷔 한 신사 (PSY)는 YouTube의 실시간 스트리밍 우리는 모든 종류의 아티스트가 YouTube에 온 것을보고 있습니다 잠재 고객에게 멋진 라이브 경험을 제공합니다 그리고 우리는 이것이 시작에 불과하다고 생각합니다 우리는 이것이 모든 종류의 독립 예술가

그리고 나는 예술가들이 음악가 그 이상을 의미한다고 말합니다 물론 우리는 게임이 게임의 큰 부분이 될 것이라고 생각합니다 YouTube에 생방송 우리는 이미 많은 것을 가지고 이것을 보게됩니다 플랫폼에서 나오는 e-sports 토너먼트

라이드 게임은 예를 들어, 리그 오브 레전드 (Legends of Legends) 토너먼트 우리는 톤수를 더보고 있습니다 Google은 최근 Call of Duty와의 API 통합을 수행했으며, Black Ops II : 실제로 스트림을 라이브 스트리밍 할 수 있습니다 멀티 플레이어 게임 플레이 자, 우리 모두는 누군가를 보는 것의 가치를 이해합니다

누가 정말 좋은 연극이지, 그렇지? 그러나 그것은 그 이상으로 확장됩니다 예를 들어, 몇 주 전, 의무 선반에 전화하자 놀고있는 누군가에게 비틀 거린다 그리고 몇 초 안에 꽤 명확 해졌습니다 이 사람은 실제로 좋지 않았다고

하지만 갑자기, 그녀는 일시 중지하고 실제로 채팅을 시작했습니다 청중이 말하는, 이봐, 고마워 나는 놀고있는 걸 보았습니다 나는 내가 그렇게 위대하지 않다는 것을 알고 있지만, 나는 훨씬 나아지고있다 그리고 이것이 제가 최근에 한 일입니다

이제 그녀를 지켜보고 있던 두 세명의 행동 그녀의 경험을 더 좋게 만들었습니다 그것은 그녀를위한 단순한 게임 그 이상의 것이되었습니다 이것이 라이브 스트리밍과 연결의 힘입니다 YouTube에서 매일 보는 시청자 그리고 그것은 모든 종류의 엔터테인먼트로 확장되며, 제품 출시 여부와 정확히 일치하는 회의 이것, 또는 매우 정교한 에이프릴 바보 장난

사람들은 YouTube April Fools의 장난을 인정합니다 오른쪽 상단? 몇 사람? 네, 12 시간 동안 진행된 실시간 스트림이었습니다 이 매우 용감한 앵커들이 실제로 제목을 읽고 기본적으로 수십만 개의 YouTube 동영상 아니면 레드 카펫 첫날 같은 무언가 우리가 뭘 더 잘할 수 있을까요? 상단의 멀티캠을 확인하십시오

다른 곳에서는 이것을 할 수 없습니다 그래서 우리는 단지 하나의 특정한 견해를 스트리밍하는 것이 아닙니다 그러나 우리는 청중들에게 그들은 가고 싶었다 우리는 장르 전반에 걸쳐이를 수행 할 수 있습니다 예를 들어 최근 PGA 라이브 타이거 우즈가 나왔다

그래서 타이거 우즈를 따라 가려면 토너먼트에서 실제로 그렇게 할 수 있습니다 물론 이것은 훨씬 더 많이 확장됩니다 또한 뉴스와 시사 문제도 다루고 있습니다 우리는 YouTube에 교황이 있었다 YouTube에서 대통령 토론회를 가졌습니다

미국 대통령 토론 오른쪽 상단에서 보신 것은 최초입니다 케냐의 대통령 토론 케냐에서는 교통량이 급증했습니다 그것이 무엇인지 궁금합니다 그리고 그것은이 사건으로 밝혀졌습니다

수많은 국제 뉴스 채널 YouTube에서 실시간 방송 그리고 물론, 우리는 많은 주제를 다루고 있습니다 이제 우리는 제작자가하는 모든 것에 정말 흥분하고 있습니다 커뮤니티가 YouTube에서하고 있습니다 그러나 이것을 가능하게하는 것은 무엇입니까? 우리가 정말로 흥분하는 것은 강력한 솔루션입니다

우리가 만든 것 YouTube 엔지니어링 팀이 마지막으로 열심히 노력했습니다 해결책을 구축하기 위해 2 년 나는 기분이 좋았다 시청자에게 최고의 스트림 품질을 제공합니다 우리는 적응 비트율과 같은 것을 제공합니다

따라서 이동하면서 대역폭이 변경되면 스트림 품질에 손실이 발생하지 않습니다 스트림에서 앞뒤로 건너 뛸 수 있도록했습니다 그리고 우리는 여러 장치를 통해 작업합니다 그래서 당신이 당신의 데스크탑에서나 당신의 전화, 그냥 작동합니다 비교할 수없는 규모와 품질

광고 작성자는 광고를 쉽게 삽입 할 수있는 기능을 제공하며, 우리에게 단 하나의 고품질 스트림을 보내려면 모두 클라우드에서 실시간으로 트랜스 코딩하고, 필요한 모든 장치와 해상도 우리는 당신에게 여러 카메라 각도를 제공합니다 광고 삽입을 허용합니다 우리는 당신이 슬레이트를하도록합니다 닫힌 캡션을 삽입하는 것이 정말 쉽습니다

훨씬 더 많은 것이 있습니다 우리는 지금 막 시작하고 있습니다 우리는이 플랫폼을 계속 구축 할 것입니다 우리의 제작자 커뮤니티와 개발자 우리는 라이브 API를 출시하여 파트너 및 개발자 믿어지지 않는 것들을 지어 라

모든 베타 파트너에게 감사드립니다 너는 방에있다 이 API를 성장시키는 데 도움을 주셨습니다 그리고 우리는이 일로 더 많은 것을 알고 있습니다 마지막으로, 우리가 정말로 흥분하는 사실은 우리는이 플랫폼을 제작자가보다 쉽게 ​​이용할 수 있도록 만들고 있습니다

어제 YouTube에서 YouTube를 통해 1,000 명의 가입자가 실시간으로 스트리밍 할 수 있습니다 우리는 이것이이 플랫폼을 더욱 가치있게 만들 것이라고 생각합니다 를 위해 개발하십시오 그리고 우리는 제작자가 커뮤니티는 당신이 어떻게 활용할 수 있는지도 알고 있습니다 개발자로서

이를 통해 Ibrahim에게 API에 대해 알려주시겠습니까? 이브라힘 울루 카야 : 물론입니다 그래서 저는 Ibrahim Ulukaya, 개발자입니다 YouTube의 프로그램 엔지니어 오늘은 API 자체에 대한 개요를 실제로 제공하겠습니다 그런 다음 설정을 제안하려고합니다

라이브 스트리밍을 위해 그리고 우리는 자바 샘플 코드를 조금씩 살펴 보겠습니다 결국에는 Android 데모가 실제로 표시됩니다 우리가 살기 시작한 이래로 우리는 그것을 보게 될 것입니다 시작하자

YouTube 라이브 스트리밍 API 실시간 스트리밍 API를 사용하면 실제로 일정을 잡을 수 있습니다 YouTube에서 실시간 이벤트를 업데이트하고 관리합니다 나만의 스트림을 인스턴스화하고이를 발생시킬 수 있습니다 이러한 이벤트 내부

YouTube 콘텐츠 파트너 인 경우 광고 지금은 개념에 대해 조금 이야기하고 싶습니다 오늘 제가 이야기하고 싶은 첫 번째 개념은 방송입니다 캘린더 일정처럼 방송을 생각해보십시오 뉴스 같은 쇼

일정 시간 동안 예정되어 있으며 이벤트 컨테이너처럼 YouTube / 라이브로 이동하면 이 사진 지금 일어나고있는 사건을 볼 수 있습니다 또는 미래의 일정을 계획하고 있습니다 두 번째 개념은 스트림입니다

스트림이란 YouTube에 전송하는 스트림입니다 이러한 이벤트의 시작점입니다 그래서 저는이 두 가지를 구별하고 싶습니다 방송은 사건입니다 – 특정 시간에 예정된 일정 스트림은 나만의 콘텐츠입니다

YouTube 진입 점 그래서 실제로 이것들을 다루고 있습니다 방송은 이벤트였습니다 이벤트 메타 데이터, 스트림이 실시간 귀하의 콘텐츠를 스트리밍 우리가 헤어질 수 있었던 이유는 유연성을 제공하여 여러 스트림을 보유 할 수 있습니다

해당 스트림에 대해 해당 스트림을 전환 할 수 없습니다 브로드 캐스트 이벤트 자체 그리고 만약 당신이 아마 당신의 스트림을 가지고 있다면, 당신은 그 스트림, 같은 스트림을 사용하고 싶을 수도 있습니다 처리 설정을 다른 이벤트로 보냅니다 그래서 우리는 융통성있게 만들어서이 둘을 분리했습니다

마지막으로 큐 포인트입니다 Cuepoint는 인스 트림 광고입니다 파트너 API를 기반으로합니다 YouTube 콘텐츠 파트너 인 경우 광고 삽입 그럼 어떻게 서로 놀 수 있죠? 내가 말했듯이, 방송은 사건입니다

그리고 당신이 당신의 시내를 원할 때 – 귀하의 콘텐츠가 이벤트에 나타나면 그냥 바인딩하는 것입니다 함께 광고를 삽입하려면 광고를 이벤트에 삽입하는 것 이 스트림을 브로드 캐스트, 스트림 이 방송에있을거야 이 이벤트 내부로 스트리밍됩니다

다른 스트림을 원하면 연결할 수 없습니다 항상 일대일 매핑이 있습니다 맞아, 이제 나는이 개념들에 대해 깊이 생각하고 싶다 그래서 브로드 캐스트는 메타 데이터입니다 제목, 설명, 예정 시간이 있습니다

비공개 또는 공개 이벤트로 만들 수 있습니다 새로운 플랫폼을 사용하면 실제로 녹음을 사용할 수 있습니다 따라서 사용자가 실시간 스트리밍을 보지 못하면 사용자가 갈 수도 있습니다 나중에 YouTube에서 동영상을 볼 수 있습니다 그리고 DVR 설정을 사용하도록 설정할 수 있습니다

동영상 내에서 앞뒤로 이동할 수 있습니다 이것은 이벤트 일정을 계획하고있었습니다 그리고 이벤트 라이브 사이클을 관리하는 것은 어떻습니까? 따라서 처음 이벤트를 만들면 시작됩니다 창조적 인 슬레이트로 그리고 그들을 묶어서 준비가되면 시작, 우리는 준비 상태에 있습니다

따라서 사용자는 곧 이벤트가 시작된다는 것을 알게됩니다 옵션 상태로 미리보기로 이동할 수 있습니다 그래서 이것은 실제로 좋은 상태입니다 이벤트가 진행되면 스트림을 모니터링 할 수 있습니다 우리는 거기에 갈 수있는 또 다른 모니터 URL을 보내고 공개되기 전에 스트림을 볼 수 있습니다

그리고 갈 준비가되면 마법이 일어납니다 그것은 스트리트 라이브갑니다 그리고 모든 좋은 일은 어느 시점에서 끝나야합니다 이걸 끝내고 싶으면 그냥 사이클을 완료하십시오 그 개울은 어쩌고? 스트림이 진입 점이었습니다

YouTube에서 스트리머와 이야기하는 곳입니다 그래서이 진입 점을 만듭니다 기억할 수 있도록 자신의 이름을 설정했습니다 그런 다음 지원하려는 가장 높은 비트 전송률을 설정합니다 지원하려는 가장 높은 해상도를 설정합니다

스트림에 대해 정말로 중요한 한 가지는 항목입니다 포인트를 만들면 실제로 RTMP URL 및 스트림 이름을 사용하면 어디에서 너는 이것들에 접근하기 위해 말할 것이다 스트림, 당신의 깃발을 보내십시오 그리고 최근의 것이 큐 포인트입니다 설명했듯이 인스 트림 광고였습니다

인스 트림 광고를 시작하고 오래있을 것입니다 그들이 어떻게 상호 작용하는지 기억합시다 다시 서로 스트림이 방송에 바인딩되어 스트림이이 이벤트에 발생합니다 한 번 광고를 삽입하려면 콘텐츠 파트너 인 경우 삽입물을 사용하고 있습니다

그래서 얼마나 많은 사람들이 라이브 스트리밍을 사용 했나요? 전에 어떤 채널에서? 좋아, 나는 약간을 본다 그리고 얼마나 많은 사람들이 인코딩과 디코딩을 사용할지, 아마도 실시간 스트리밍이 아닌가요? 승인 나는 몇 가지 더 많이 본다 그리고 아마도 지금 궁금해하실 것입니다 개념 및 API를 제공하지만 최고의 실시간 스트리밍은 어떨까요? YouTube 설정 지금 당장이 새로운 플랫폼으로 모든 표준 비트 전송률 지원, 모든 표준 해상도는 240p에서 최대 1080p입니다

이 제품의 가장 큰 특징은 이 모든 다른 비트 전송률을 보내십시오 YouTube에 대한 결의안 원하는 가장 높은 비트 전송률을 보내고 싶습니다 지원, 가장 높은 지원하려는 해상도 그리고 거기에서, 실시간으로, 우리는 그것을 모두에게 낮은 자질

그래서 대역폭을 절약하고 있습니다 처리 능력을 저장하고 있습니다 그리고 우리는 당신을 위해 전체 무거운 것을 할 것입니다 엔코더는 어떻습니까? 현재 RTMP 플래시 스트리밍을 지원하고 있습니다 그리고 당신은 H

264 비디오를 사용하고 싶습니다 구형 코덱의 경우 AAC를 지원하고 있습니다 앞에서 설명했던 것과 유사하게 코드 변환 된 낮은 비트 전송률, 다른 코드로 변환 콘테이너 및 다른 자질 그래서 사람들 iOS, Android 및 Google TV에서 제공되는 뿐만 아니라 스트림 따라서 당신은 당신이 어떻게 변할 것인지 생각할 필요가 없습니다 다른 설정으로 스트리밍하십시오

우리는 당신을 위해 이것을 할 것입니다 그래서 이것은 첫 번째 스트리밍이었습니다 설정 및 API 개요 그리고 당신이 실제로 가질 수있는 것처럼 – 이 플랫폼에 개발자가 있다는 것을 알고 있습니다 우리의 다른 견본과 이야기하십시오

오늘 내가 말할 모든 샘플, 그들은 열려있다 YouTube API 샘플에 따라 제공됩니다 그래서 한 가지를 놓치거나 둘, 흥분하지 마라 그들은 모두 오픈 소스입니다 거기에 가서 여전히 액세스 할 수 있습니다

그리고 오늘 저는 Java 샘플에 대해서 이야기 할 것입니다 그러나 우리는 파이썬에서 모든 클라이언트 라이브러리를 지원합니다 PHPnet에서 Objective-C로, 많은 사람들이 그리고 우리가 지원하는 다른 클라이언트 라이브러리를 볼 수 있습니다

그리고 그것은 완전히 RESTful 한 API입니다 클라이언트 라이브러리를 사용하지 않으려는 경우에도 REST API 만 사용할 수 있습니다 첫 번째 예를 들어 보겠습니다 방송을 만듭니다 오늘 저는 세 가지 일을하고 싶습니다

방송 제작을 시작한 다음 스트림을 만들고 함께 연결하십시오 그래서 나는 살아갈 준비가되어있는 어떤 것을 갖게 될 것입니다 브로드 캐스트 만들기를 시작합니다 메타 데이터를 입력 한 다음 상태를 설정합니다 그리고이 둘을 사용하여 브로드 캐스트 객체를 만듭니다

이제 YouTube에서이 방송 객체를 만들고 싶습니다 삽입 요청을 작성하고 실행합니다 그래서 나는 방송에서 시작하겠다 스 니펫, 메타 데이터 나는 그것을 설정하고 제목을 만들었습니다

나는 예정된 시간을 정했다 그리고 기억해야 할 한 가지는, 오늘은 필수 매개 변수 앞서 설명한 다른 매개 변수가 있지만 단지 최소한의 일을하는 것뿐입니다 그리고 두 번째는 지위였습니다 상태와 함께, 이것 때문에 예를 들어, 비공개로 설정했습니다

이전 버전을 사용하여 스 니펫과 상태를 설정 했으므로 브로드 캐스트 객체를 생성합니다 이제이 브로드 캐스트 객체를 YouTube에 삽입하려고합니다 그것은 YouTube에도 나타날 것입니다 그래서 그 삽입 요청을 만듭니다 그리고 클라이언트 라이브러리를 사용하여 라이브 방송을했습니다

요청을 삽입하고, 클래스를 삽입하십시오 그리고 만든 브로드 캐스트 객체를 래핑합니다 이 요청 앞부분 그리고 나는 그것을 실행했다 그리고 RESTful API라고 설명했습니다

모든 것이 클라이언트 라이브러리에 의해 성공적으로 수행되면 JSON이 전달되고 리턴 브로드 캐스트가 표시됩니다 방송은 실제로 YouTube 내부에 삽입되었습니다 그래서 그때부터, 내가 한 모든 일을 확인할 수 있습니다 성공 여부 따라서 방송을 만든 후 두 번째 단계는 스트림

그 시내는 – 나는 비슷한 나무를 할 것이다 메타 데이터부터 시작하겠습니다 내 섭취 설정을 지정합니다 그리고 스트림 객체를 생성합니다 마지막에는 YouTube에 삽입하겠습니다

그래서 스 니펫으로 시작합니다 메타 데이터이기 때문에 제목을 설정합니다 그런 다음 섭취 설정을 살펴 보겠습니다 처리 설정에서 내가 설명했듯이 지금 RTMP를 지원하십시오 이 예제를 위해 1080p로 설정했습니다

이것이 제가 지원하고자하는 최대 해상도입니다 지금 스트림 객체를 생성하고 스 니펫 및 방금 만든 섭취 설정 이제 YouTube에 삽입 할 차례입니다 그래서 다시 삽입 개체를 만듭니다 이번에는 라이브 스트림 삽입 객체입니다 그리고 나는 그 안에 물줄기를 담았다

일단 내가 그것을 실행하면, 나는 창조 된 시내가이다 돌려 보낸다 YouTube에서 기억해야 할 것이 있습니다 앞에서 설명했듯이, 이것은 여러분의 진입 점입니다 YouTube의 스트림 엔트리 포인트 따라서 일단이 스트림을 만들면 실제로 처리 주소, RTMP URL 가져 오기 및 스트림 명 따라서 동일한 API를 사용하여 실제로이를 해결합니다

처리 주소, 스트림 이름, 그래서 우리는 어디에서 알 수 있습니까? 스팀, 어디로 우리의 깃발을 보낼 수 있습니다 그래서 우리도 스트림을 만듭니다 지금까지 우리는 이벤트를 만들고 스트림을 만들었습니다 무언가가 빠졌어 나는 그것이 연결이라고 생각한다

그래서 우리는이 사건 안에서 시내가 일어나도록하고 싶습니다 따라서 우리는 바인드 요청을 생성 할 것입니다 내부에 브로드 캐스트 ID를 설정합니다 설정된 스트림 ID를 설정합니다 일단 실행하면 성공하면 방송

이제 바인딩이 성공했는지 여부를 확인할 수 있습니다 그래서 이것은 자바 샘플 이었지만, 나는 그것을 실행하고 싶다 컴퓨터에서 YouTube로 연결된다는 것을 알게됩니다 그래서 방금 전에 보여준 예제를 사용하고 있습니다 브로드 캐스트 예제

나는 그것을 실행할 것이다 OAuth 20 메소드를 사용하여이 작업을 수행합니다 스트림 만들기,이 예제, 내 스트림을 만듭니다 내 대신에 그래서 나는 접근을 허용 할 것이다

액세스가 허용되면 데모를 사용하기 시작합니다 따라서 "I / O"라는 제목의 스트림 브로드 캐스트 이벤트 '13 이벤트 "확인 그래서 나는 사건이 일어난 것을 봅니다 방금 게시되었습니다

나는 실제적인 시내를 창조 할 것이다 그래서 저는 스트림을 만들뿐입니다 이전에 설명했듯이 일단 스트림을 만들면 처리 주소가 있습니다 그리고 내 스트림 이름 – 내 고유 한 스트림 이름이 있습니다 그래서이 두 가지를 사용하여 데이터를 어디에 스트리밍할지 알 수 있습니다

그리고 마지막으로, 내가 설명했듯이, 이제 나는 그들을 하나로 묶는다 따라서 내가 만든 브로드 캐스트 ID와 내가 만든 스트림 ID는 내 사건이 알 수 있도록 그들을 묶어 라 방송 할 스트림 한 단계 아래로 가서 YouTube 웹 사이트로 이동하십시오 내 계정에서 라이브를 사용할 수 있으므로 내 계정에 있습니다

그래서 나는 여기서 라이브 이벤트를 볼 수 있습니다 방금 만든 이벤트, "I / O '13 이벤트" 그리고 클릭하자 이번 행사 그리고 내가 설명했듯이 그것이 사적이라는 것을 알았습니다

그것은 미리 예정되어 있습니다 섭취 설정으로 이동합니다 그리고 방금 만든 이벤트 인 "I / O Stream 이벤트 "가 여기에 있습니다 방금 설명한대로 1080p입니다 그래서 이것은 자바의 데모였습니다

그리고 저는 한 단계 더 나아가고 싶습니다 그리고 내가 시도 할 작은 스트리밍 앱을 만들었습니다 여기에서 시내로 어디 보자 그래서 나는 처음부터 – 내가 이걸 돌려 보자

승인 먼저 로그인부터 시작하겠습니다 Google Play 계정 관리자를 사용합니다 그래서 여기에서 내 계정이 있습니다 나는 내 계좌를 고를 것이다

이제는 이벤트를 승인 할 것입니다 그리고 나는 나의 이벤트를 만들 것이다 그래서 지금 무슨 일이 일어나고 나는 이벤트를 만들었습니다 나만의 독특한 증기를 만든 다음, 나는 그들을 함께 연결한다 그리고 내가 라이브 이벤트에 참석했을 때, 나는 단지 그것들을 나열합니다

보시다시피, 전에 만들었던 "I / O '13" 저기에있다 방금 만든 동영상 중 라이브 스트리밍입니다 여기 이벤트 그래서 나는 이것을보고있다 그리고 나는 지금 스트리밍을 시작할 것이다

스트리밍을 시작한 것처럼 보입니다 YouTube 웹 사이트에서 살펴 보겠습니다 그리고 내 라이브 스트림 이벤트 나는 실제로 스트리밍으로 가서 무엇이 보이는지 보게 될 것이다 지금 당장 일어나고있어

네 내 스트리밍이 여기서 시작되었습니다 내 API에서 스트리밍을 시작하기 위해 이미 클릭했습니다 API에서 그래서 나는 이미 클릭 했으므로 클릭 할 필요가 없었습니다

나는 시내를 시작하도록 요청했다 그리고 지금 당장은 서버가 트랜스 코딩하고 있습니다 그리고 몇 초 만에 우리는 살게 될 것입니다 그래서 그것을 보자 나는 나의 사건에 나의 계정 등을 맞댄 갈 것이다

이번에는 클릭 만하면됩니다 그리고 내 사건이 시작됩니다 몇 초만 기다려주세요 SATYAJEET SALGAR : 몇 초주세요 오늘 데모 신이 호의적 인 것처럼 보입니다

우리는 네트워크를 비난 할 수 있습니까? 이브라힘 울루 카야 : 죄송합니다 SATYAJEET SALGAR : 우리는 네트워크를 비난 할 수 있습니까? IBRAHIM ULUKAYA : 네, 물론, 왜 안됩니까? SATYAJEET SALGAR : 왜 안돼? 괜찮아 몇 초만주세요 관객 : [INAUDIBLE]? 이브라힘 울루 카야 : 아닙니다 질문은 내가 I / O '13에 스트리밍하거나 이번 행사

실제로, 내가 방금 한 것처럼, 나는 실제로 라이브를하는 것처럼 보입니다 스트리밍 이벤트 I / O '13은 Java Eclipse에서 사용한 것입니다 그래서 오늘은 Eclipse를 보여 줬습니다 그러나 원하는 언어를 자유롭게 사용할 수 있습니다

뭐 무슨 일이 일어나고 있어요 그리고 그래, 우리는 살아있다 SATYAJEET SALGAR : 그래, 우리가 간다

[박수 갈채] SATYAJEET SALGAR : 우리는 청중을 끌어들이 야합니다 IBRAHIM ULUKAYA : 오디오를 보내고 싶지 않았습니다 오늘 그것이 저의 데모에 관한 것입니다 나는 당신이 그것을 창조하는 것이 쉬웠다는 것을 당신이보기를 원했습니다 라이브 이벤트 및 라이브

그리고 이제부터는 질문을 시작할 수 있습니다 SATYAJEET SALGAR : 우리는 질문을 기쁘게 생각합니다 이브라힘 울루 카야 : 질문이 있으시면, 마이크로폰 그리고 우리가 취할 것 인 것처럼 생생한 질문을합니다 중재자 링크의 질문 SATYAJEET SALGAR : 운영자 링크에 관한 유일한 질문 "이브라힘은 왜 그렇게 대단하니?" 그리고 나 내가 그렇게 부탁했다고 생각해

그래, 제발 관객 : 그래서 아주 좋습니다 iOS에서는 아마도 HLS를 프로토콜로 사용하고있을 것입니다 HTTP 라이브 스트리밍, 맞나요? SATYAJEET SALGAR : 예 IBRAHIM ULUKAYA : 우리는 RTMP를 사용하고 있습니다

관객 : 이제 안드로이드에서 안드로이드는 훨씬 더 많은 것을 가지고 있습니다 실행의 고문 된 역사 멀티미디어 프로토콜 SATYAJEET SALGAR : 죄송합니다 네가 여기서 말한 것을 놓쳤다 관객 : 안드로이드에서

Android의 경우 HLS를 사용하고 있습니까? Chrome 브라우저가 표시되거나 다른 브라우저를 사용 중입니다 프로토콜을 Android로 스트리밍하려면 어떻게해야합니까? IBRAHIM ULUKAYA : 문제는 우리가 HLS 또는 다른 프로토콜 관객 : 안드로이드에서 IBRAHIM ULUKAYA : Android의 경우 실제로 사용하고 있습니다 지금 RTMP

SATYAJEET SALGAR : 당신은 재생 또는 제작자 측의 스트리밍 청중 : 재생 SATYAJEET SALGAR : 재생 재생, HLS 관객 : 안드로이드에 HLS? SATYAJEET SALGAR : 그렇게 믿습니다 재렉? 네

JAREK WILKIEWICZ : 예 내 생각에 그것은 안드로이드 버전까지입니다 그래서 우리는 [INAUDIBLE] 코드 변환을합니다 이브라힘 울루 카야 : 죄송합니다 SATYAJEET SALGAR : 오, 미안

JAREK WILKIEWICZ :이 플랫폼의 핵심 기능 중 하나는 다양한 형식으로 트랜스 코딩합니다 [알아들을 수 없는] SATYAJEET SALGAR : 예, 일어나요 오, 그런데 대답은, 대부분의 사람들은 그렇지 않았습니다 그것을 듣고, 우리는 다양한 포맷으로 코드 변환 했습니까? 대부분의 안드로이드 버전에서는 HLS입니다

일부에서는 다른 것입니다 네 고객 : API는 누구에게나 공개되어 있으며 일부는 공개되어 있습니까? 조직? SATYAJEET SALGAR : API는 누구에게나 열려 있습니다 관객 : 누구? SATYAJEET SALGAR : 공개되어 있고, 예, 공개되어 현재 열리고 있습니다 관객 : 네

따라서 누군가에게 모바일 앱을 만들어 로그인해야하는 경우 그들에게 [INAUDIBLE]을 허락하는 그들의 계좌? SATYAJEET SALGAR : 그렇습니다 그래서 누구나 개발할 수 있습니다 라이브 API를 사용합니다 우리가 지금 가지고있는 제약은 최소한 1,000 가입자가 귀하의 계정으로 스트리밍 할 수 있습니다 그것은 우리가 작업하고있는 것입니다

우리는 실시간 액세스를 확대하기 위해 노력하고 있습니다 그러나 지금 제약 조건은 자신의 계정 당신은 스트리밍을 통해 특정 수의 YouTube 계정으로 양호한 상태를 유지해야합니다 관객 : 좋아, 그럼 그게 내 다음 질문이야 그렇다면 API를 사용하기위한 한계는 무엇입니까? SATYAJEET SALGAR : 죄송합니다 관객 : API를 사용하기위한 한계는 무엇입니까? SATYAJEET SALGAR : 누구나 API를 사용할 수 있습니다

따라서 YouTube에 실시간 스트리밍 할 수있는 도구를 개발중인 경우 API는 공개입니다 개발자 키 이외에는 없습니다 IBRAHIM ULUKAYA : 아니오, API는 선적 서류 비치 우리가 제약을받는 유일한 것은 채널로 스트리밍됩니다 따라서 테스트 채널이 있거나 하나의 채널을 사용하여 API를 사용하면 항상 API를 사용할 수 있습니다

그러나 일단 라이브 스티 밍을 시작하면 결국, 귀하가 귀하의 제품과 귀하의 제품을 개발할 때 준비가되면 제품을 사용할 사람들은 실제로 라이브를 보낼 채널 안으로 들어간다 관객 : 오, 알겠습니다 그들은 채널이 필요합니다 그러나 실시간 스트림의 콘텐츠를 어떻게 화면에 나타 냅니까? SATYAJEET SALGAR : 그렇다면 우리는 어떻게 컨텐츠를 관리합니까? 관객 : 예를 들어, 공개하지 말고 어떻게 감지합니까? 어떻게 그걸 막아? SATYAJEET SALGAR : 아하, 당신은 스팸 걱정이있어 관객 : 네

SATYAJEET SALGAR : 그래서 우리는 이것은 우리가 해낸 것입니다 YouTube에서 많은 시간과 노력을 들였습니다

YouTube의 콘텐츠를 보호하는 모든 메커니즘 동영상 일반은 실시간 스트림에도 적용됩니다 그래서 사람들은 시내에 깃발을 꽂을 수 있으며, 그것은 내려갑니다 콘텐츠 ID라는 도구가 있습니다 저작권을 침해하는 콘텐츠 라이브 스트림에 대해서도 실행됩니다

다른 건 없니? 괜찮아 수줍어하는 청중입니다 우리의 이야기를 듣고 대단히 감사합니다 온라인으로 청취 해 주셔서 감사합니다 이브라힘 울루 카야 : 고마워요

SATYAJEET SALGAR : 이브라힘과 나는 여기서 놀고있다 와서 질문 해보십시오 IBRAHIM ULUKAYA : 다른 질문이 있으시면 하루 종일 샌드 박스 영역에있을뿐만 아니라 다른 영역에도 있어야합니다 YouTube 전문가 그래서 언제든지 와서 다른 질문을 할 수 있습니다

우리는 모든 것을 후속 조치 할 것입니다 감사 SATYAJEET SALGAR : 고마워

Maps Live: New Features in the Google Maps Mobile APIs for Android and iOS

嗨 CHRIS BROADFOOT : 안녕하세요 나는 Chris Broadfoot입니다

저는 Chris Broadfoot입니다 Google지도 개발자 관계 팀에서, Google지도 개발자 관계 팀에서 일합니다 나는 Daniel Schramm입니다 Daniel Schramm : 저는 Daniel Schramm, Associate Product입니다 Google지도 모바일 API 프로젝트의 제품 관리자 조수로서 Google지도 모바일 API의 관리자입니다

얼마 전에 우리는 iOS 및 Android에서 CHRIS BROADFOOT에있었습니다 : 우리는 최근에 모바일에 대한 업데이트를 릴리스했습니다 iOS와 Android 모두에서 업데이트 된지도 API입니다 오늘 우리는 비디오에서 다니엘 SCHRAMM 이야기 :이 업데이 트는 세 가지 새로운 기능을 소개합니다 이번 업데이트에서 우리가 오늘의 비디오에서 이야기하고자하는 세 가지 새로운 기능 – 패딩 마커 매핑 회전 및 플랫 마커는 패딩, 마커 회전 및 플랫 마커를 매핑합니다 먼저, 맵 패딩 (Map Padding)에 대해 살펴 보겠습니다 CHRIS BROADFOOT : 먼저 맵 패딩에 대해 설명하겠습니다

지도 채우기를 사용하면 기본 작업을지도로 옮길 수 있습니다지도 채우기를 사용하면 기본 Google지도를 오프셋 할 수 있습니다 동시에지도 외부에서 오버레이 컨트롤을 추가하여 추가 할 수 있습니다 예를 들어 반투명 메뉴 막대 또는 세로 막대와 같이 투명 메뉴 막대 또는 세로 막대 오버레이를 추가 할 수 있습니다 지도 채우기의 값은 언제든지 변경하거나 애니메이션으로 변경할 수 있습니다 예를 들어지도에서 사이드 바가 표시되거나 사라지는 경우 (예 :지도에서 사이드 바를 밀거나 내릴 때) 지도는 각 방향의지도 패딩 값을 고려하며지도를 다시 중심에 배치하는 것과 같은 카메라 업데이트는 안쪽 여백을 고려하여 마커의 위치를지도의 중앙에 위치 시키면 아무 것도 할 필요가 없습니다

오프셋에 대한 수동 계산의 번거 로움을 제거합니다 다음에 우리가 이야기하려고하는 것은 대니얼 SCHRAMM입니다 : 우리가 이야기하고 싶은 다음 미래 평면 마커는 평면 마커입니다 보는 방향에 관계없이 새로운 유형의 디자인입니다 평면 마커는 항상 평면으로 유지되는 새로운 유형의 마커입니다 카메라 배치 방식에 관계없이지도에 항상 배치됩니다 다른 마커와는 다른 표준 마커와는 다릅니다

지도를 회전하면지도에 제목이 표시 될 때 평면 마크가 항상지도에서 튀어 나오게됩니다 두 가지 유형의 마커를 사용할 수 있습니다 이제 평면 마커와 표준 마커를 모두 회전시킬 수 있습니다 앵커 포인트는 앵커 포인트를 중심으로 회전합니다 그래서 재미있는 평면 마커를 만들 수 있습니다 이렇게하면 평면 마커를 만들 수 있습니다

예를 들어, 나침반처럼 나침반처럼지도에 고정시킬 수 있습니다이지도는 항상지도에 고정되며, 항상 특정 방향의 한 방향을 가리 킵니다 위의 두 점을 CHRIS BROADFOOT와 결합하십시오이 두 특징은 다음과 결합 할 수 있습니다 멋진 사용자 경험을 통해 정말 매력적인 경험을 얻을 수 있습니다

예를 들어 GPS 경로를 재생 중입니다 예를 들어 GPS 경로를 재생 중입니다 마크는 사용자의 실시간 위치 및 방향을 나타냅니다 마커의 방위는 사용자의 방위를 나타냅니다 그리고 그 특정 시점에, 마커가지도를 따라 움직일 때 움직일 수 있습니다 DANIEL SCHRAMM의 크로스 플랫폼 기능 중 일부는 다음과 같습니다

이는 크로스 플랫폼 기능입니다 오늘 우리는 그것에 대해 이야기 할 것이고, 오늘 이야기 할 시간이 있습니다 플랫폼의 각 기능, 플랫폼 별 기능을 배우려면 릴리스 정보를 참조하십시오 설명서에 게시 된 설명서를 살펴보십시오 Google Maps API를 설치하는 것을 잊지 마십시오

CHRIS BROADFOOT : Google+ 서클의 Google지도 API + 페이지에 추가합니다 지켜 줘서 고마워요 들어 주셔서 감사합니다 다음에 다시 보겠습니다 DANIEL SCHRAMM : 너 보자

YouTube Developers Live: YouTube Direct Lite for Android

이브라힘 울루 카야 : 안녕하세요 저는 YouTube API 개발자 인 Ibrahim Ulukaya입니다

관계 팀 And Android API Developer의 Roman Nurik과 함께하십시오 관계 팀 안녕, 얘들 아 어떻게되고 있습니까? IBRAHIM ULUKAYA : 그리고 오늘 여러분들이 이미 알아 낸 것처럼, 우리는 Android와의 YouTube API 통합에 대해 이야기 할 것입니다

그래서 그것은 안드로이드 앱과 같을 것입니다 YouTube에서 제공하는 YouTube Direct Lite Android 앱을 열면됩니다 우리는 디자인 원칙에 대해 이야기 할 것입니다 YouTube API와 YouTube API를 YouTube Direct Lite 어쩌면 시작하자

YouTube Direct Lite 란 무엇입니까? 너희들이 항상 Stack Overflow에서 묻는 동안, 내가 실제로 다른 사람들에게서 비디오를 얻을 수있는 방법에 대해 다른 사람들이 내 계정에 동영상을 업로드하도록 허용하려면 어떻게해야합니까? 사실, 프라이버시 문제 때문에 우리는 실제로 원하지 않습니다 귀하는 귀하의 비밀번호를 공유하거나 YouTube 계정을 공유 할 수 있습니다 모두가 내 YouTube 채널에 업로드하도록하십시오 따라서 YouTube Direct Lite를 만들었습니다

YouTube Direct Lite는 사람들이 자신의 채널에 대한 알림을 보냅니다 재생 목록을 조정하면 해당 재생 목록을 검토 할 수 있습니다 원하는 비디오를 승인 할 수 있습니다 재생 목록에 있어야합니다 따라서 업로드 한 후에는 실제로 보류 중이며 검토 재생 목록을 만들고 원하는 모든 비디오를 승인합니다

그리고 그들은 실제로 진짜 재생 목록에와 있습니다 세상을 보여주고 싶다 이렇게하면, 당신은 첫 번째 [INAUDIBLE] 검토 전에 공개합니다 이 경우 모바일 앱을 만들고 싶습니다 이렇게하면 YouTube Direct Lite로 시작했습니다

Android 프로젝트 프로젝트와는 별도로, 우리는 실제로 최상의 YouTube API 사용 사례 수집 YouTube Android 디자인 사례를 통해 사람들이 참조 프로젝트 이 프로젝트는 모두 GitHub에서 오픈 소스로 제공됩니다 github / youtube / ytd-android 그리고 여러분, 자유롭게 기부 해주십시오 그것을 사용자 정의하고 자신의 유스 케이스에 사용하십시오

사용 사례가 그렇듯이 팬에게 웹 사이트 또는 서비스 용 비디오를 업로드하십시오 그런 다음 YouTube 경쟁을 만들고 사람들이 최고의 동영상을 업로드합니다 그리고 그것을 검토하고 사이트에 표시 할 수 있습니다 시작하자, 어쩌면 우리가 화면을 볼 수 있다면, 나는 단지 약간의 데모를 보여줄 것입니다

첫 번째 메뉴에는 실제로 YouTube가 있습니다 입증 실제로 YouTube와 YouTube를 모두 관리 할 것을 요청합니다 내 Google+ 계정뿐 아니라 실제로 어떤 API를 사용하고 있는지 왜 우리가 그들을 사용하고 있습니다 그리고 그것을 시작으로, 권한 부여에 대한 실제 증거 OAuth 2

0 흐름입니다 그리고 우리가 승인 받았음을 확인하면 내 모든 동영상, 이전 동영상 및 [재미 있지 않은] 내부의 재미있는 비디오처럼 여기에는 세 가지 기본 옵션이 있습니다 하나의 옵션은, 나는 YouTube 동영상은 여기에 있습니다 나는 그것들 중 하나를 선택할 수있다

나는 그들을 놀게 할 수있다 그리고 일단 그들이 실제로 연주되면 – 그 비디오를 실제로 보여주고 싶습니다 나를 참아주십시오 여기 느린 인터넷이 있습니다 실제로 YouTube에 보낼 수 있습니다

그래 비디오가 이미 재생되기 시작했습니다 그리고 나서 실제로 그 재생 목록을 보냅니다 제출할 수 있습니다 동영상이 이미 해당 재생 목록에 제출되었습니다

제출하고 싶습니다 저는 사실이 파일에서 상수 파일을 만들었습니다 그래서 당신은 실제로, 빨리, 당신의 [INAUDIBLE] 파일 목록 보내려는 재생 목록 ID를 구울 수 있습니다 모든 제출물은 해당 재생 목록으로 이동합니다

두 번째 것은 실제로 미리 녹화 된 비디오 우리는 비디오가 있습니다 ROMAN NURIK : 내 자신의 많은 비디오 이브라힘 울루 카야 : 오, 알겠습니다 큰

그리고 그 업로드를 사용하십시오 실제로 이미 업로드가 시작되었으며 실제로 프로세스를 추적합니다 더 긴 비디오가 있다면 더 나은 진행 또는 세 번째 옵션으로 비디오 녹화를 시작할 수도 있습니다 기스로부터

우리는 멋진 비디오를 가질 수 있으며 아마도 네 와우! 이브라힘 울루 카야 : 예, 우리 같은 것을 보여줍니다

그리고 아마도 카메라는 다른 것이 아니었을 것입니다 그래서 저는 안드로이드 카메라도 그리고 나는 [부적절한] 그것을 [INAUDIBLE] 엘리먼트로 보자 진행률 표시 줄이 실제 작동합니다 우리는 좀 더 긴 비디오를 녹화 할 것입니다

설명하기에는 [INAUDIBLE]을 사용합니다 세 가지 유스 케이스가 있습니다 첫 번째로, 이미 업로드 한 파일 중 하나를 제출할 수 있습니다 YouTube 동영상을 제출합니다 새 비디오를 녹화 할 수있을뿐 아니라 Android 기기에서 녹화 한 동영상 그리고 그들은 모두 YouTube로 보내질 것입니다

따라서이를 사용하여 YouTube 업로드 또는 추가 태그를 추가하여 YouTube Direct Lite 어떤 재생 목록이 실제로 동영상을 보낼지를 안다 나는 그것이 1 분이면 충분하다고 생각한다 네 이 비디오를 보내 봅시다 그리고 우리는 항상 비디오를 보여줄 수 있습니다

그리고 당신은 이미 시작했습니다 보시다시피 여기에 알림 바가 있습니다 시작이 완료되었다는 것입니다 진행 상황을 보여줍니다 그리고 그것이 완료되면, 우리는 실제로 볼 수있게 될 것입니다

또 다른 알림으로, 동영상은 이미 처리가 완료되면 우리는 동영상이 준비되었습니다 가서 비디오를 볼 수 있습니다 이제 내 계정의 동영상 관리자가되었습니다 실제로 YTDL에서 거부 한 YTDL 제출물과 내 동영상을 보내고 싶은 나의 실제 재생 목록 3 개의 동영상이 있으므로 이전에 공유 한 내 동영상입니다

실제로 절제 도구로 이동합니다 내 평가는 AppSpot, ytdirectliteapp에서 호스팅됩니다 spotcom/static-min/admin

html 거기에서, 나는 실제로 – 이미 내 계정으로 로그인했습니다 그리고 나는 나의 플레이리스트를 본다 그리고 제가 실제로 갈 때 저는 실제로이 세 가지를 봅니다 이미 승인 된 동영상과 내가 방금 제출 한 동영상이 보류 중입니다

그래서 내가 실제로해야 할 일은 비디오를 승인하는 것뿐입니다 그리고 일단 그들이 그것을 승인하면, 우리가 실제로 "성공"에 가면 내 재생 목록에 이미있는 비디오를 볼 수 있습니다 그리고 내가 여기 내 오래된 비디오로 돌아 가면, 내 재생 목록에, 나는 이미 내 재생 목록에 업로드되어 있는지 확인하십시오 YouTube Direct Lite 앱과 같았습니다

그리고 말하자면, 저는 로마 누릭 (Roman Nurik)에게 여기로 물어 봅니다 우리가 사용한 디자인 원리에 대해 이야기하기 이 앱은 진짜 같았습니다 [INAUDIBLE] 처음에 나는 그것을 로마에 가져 가고, 로마는 나를 많이 도와 주었다

그리고 그가 말하는 것을 보자 ROMAN NURIK : 좋아, 그럼 디자인에 대해 조금 이야기 해보자 이 앱의 그래서 제가 여기에서 이야기하고 싶은 몇 가지가 있습니다 첫 번째는이 앱의 가장 중요한 부분이 하나의 기본 일반 흐름이 있다는 것입니다 어떤 종류의 비디오 콘텐츠가 있거나 녹화하고 싶습니다

그 비디오 내용 그리고 나서 당신은 그것을 준비의 종류로 가져 가고 싶습니다 미리보기 영역 그런 다음 해당 동영상을 업로드하려고합니다 당신은 선택했거나 취했습니다

그리고 거기에서, 기본적으로 – 모든 추가 상호 작용은 상태 표시 줄을 통해 진행됩니다 공고 그래서 당신이 이것을 할 수있는 몇 가지 방법이 있습니다 주목할 첫 번째 사실은 실제로 비디오를 섭취하는 다른 방법 기존 YouTube 동영상 중에서 선택할 수 있습니다

귀하의 계정에 기본적으로 갤러리에서 항목을 선택할 수 있습니다 이전에 녹음 한 것, 전화, 어디서나 업로드하지 않고 또는 즉석에서 녹화 할 수 있습니다 그래서이 응용 프로그램의 원래 버전에서, 나는 당신이 2 개 또는 3 개의 큰 버튼이 있습니다 그리고 그 버튼들은 비디오 선택이나 선택이었습니다

갤러리 또는 레코드에서 그래서 즉시 사용자를 던지는 문제 3 개의 큰 버튼이있는 곳으로 그런 다음 즉시 결정을 내려야합니다 매우 정적 디자인의 관점에서 볼 때 매우 어렵습니다 기본적인 시각을 손상시키지 않으면 서 정말 멋지게 보입니다

공백의 사용과 같은 디자인 원칙 그런 것들 그래서 우리가하기로 결정한 것들 중 하나는 가장 일반적이거나 잠재적으로 가장 일반적인 형태의 입력, 하나 섭취 기술의 가장 일반적인 형태의 그 즉시 사용할 수있는 바로 그 앱을 엽니 다 앱을 여는 즉시 귀하의 목록을 볼 수 있습니다 기존 YouTube 업로드 그리고 그것은 기본적으로 당신의 최고의 종류입니다 섭취 옵션

네가 뭔가를 선택하고 싶지 않다면 이미 업로드했으면 기본적으로 아마도 어쩌면 20 %의 유스 케이스이거나 15 %의 유스 케이스 인 옵션 케이스, 또는 그런 것 당신은 그것들을 바닥에 추가 옵션으로 가지고 있습니다 또는 자신의 앱에서이 작업을 수행하려면 화면 오른쪽 상단의 작업으로 액션 바 그리고 이것에 대한 좋은 점은 섭취 기술을 선택하면 기본적으로 동일한 미리보기 흐름에 포함됩니다 같은 큰 미리보기를 얻었고 그 다음에는 버튼, YouTube Direct Lite에 업로드

그리고 거기에서 똑같은 일이 일어납니다 따라서 사용자에게 매우 즉각적입니다 무슨 일이야 그래서 우리가 여기서 한 두 가지 재미있는 것들이 있습니다 분명히, 변화에 추가, 전체 흐름 주변

첫째, 우리는 시각 자료와 함께 많은 시간을 보냈습니다 분명히 우리는 다음과 같은 흥미로운 것을 사용하고 있습니다 지형 우리는 여기서 Roboto Light를 사용하고 있습니다 우리는 Roboto Condensed를 두 영역에서 사용하고 있습니다

우리는 Roboto Condensed Bold All Caps를 사용하고 있습니다 이 버튼의 캡션 그리고 그것은 표준 Holo 디자인 미학의 일부를 따릅니다 다른 시스템 앱에서도 볼 수 있습니다 우리는 또한 반응이 빠른 디자인 기법을 사용하고 있습니다 따라서 실제로 Nexus 7에서 조금 더 좋아집니다

하지만이 화면과 Nexus의 차이점은 7, Nexus 4는 Nexus 7에서 사용하는 것으로, 2 열 그리드 또는이 경우 Nexus 10에서 2 열 그리드 아마 여기 네 칼럼처럼 더 많은 것을 할 수 있습니다 그리드 또는 뭔가 하지만 Nexus 4에서는 단일 열 목록입니다 그리고 그 도움이 일부 공백 문제를 완화하는 데 도움이 너는 덤벼들 것이다 예를 들어 Nexus에 목록을 방금 표시했다면 10 인치 가로로 보면, 물건이 매우, 매우 길고 믿을 수 없을만큼 이상한 종횡비

그래서 태블릿에서 멀티 칼럼 그리드를 사용합니다 좀 더 잘 반응하도록 도와 줄 수 있어요 디자인 된 앱 그 밖에서 우리는 또한 Android의 표준 측정 항목 따라서 표준 48dp 리듬과 16dp 여백이 있습니다 그래서이 경계선을 따라 거의 모든 곳에서 왼쪽 가장자리는 16dps입니다

전체 간격은 16 dps를 사용합니다 또는 8 dps 또는 4 dps 그것은 우리가 사용하는 표준 간격 모델의 종류입니다 그리고 도상학 그래서 원래, 우리는 매우 큰, 다채로운, 그라디언트 단추입니다

그리고 우리는 좀 더 조용하고 차분하고 평평한 스타일로 전환했습니다 아이콘 갤러리 아이콘이 매우 인상적입니다 표준 갤러리 아이콘 표준을 사용하여 매우 평평합니다

홀로 라이트 액션 바 스타일이라고 생각합니다 그리고 기록을 위해, 어떤 기록이 매우 자주 붉은 색과 관련된, 우리는 그것에게 줄 것을 결심했다 약간 다른 치료 디자인 측면에 대한 흥미로운 점은 사실,이 아이콘들에 대해서는 우리가 갈 필요가 없었습니다 포토샵이나 뭐든지

Android Asset Studio를 사용하고 일반 아이콘 생성기 우리는 클립 아트 집합에서 아이콘을 연결했습니다 원했고, 우리가 필요로하는 색을주고, 방금 내보냈습니다 그것들을 모든 다른 밀도에 맞 춥니 다 그래서이 많은 것, 우리는 정말로 어떤 종류의 것이 필요하지 않았습니다

특별한 포토샵 작업 우리는 XML 편집기에서 디자인을 수행했습니다 Android Studio의 레이아웃 편집기에서 사실 Eclipse에 있었습니까? 이브라힘 울루 카야 : 예, 이클립스에있었습니다 네 그래서 우리는 Eclipse ADT 플러그인에서 디자인을 수행 한 다음 모든 아이콘은 Android 자산 스튜디오에서 가져온 것입니다

전반적으로 디자인은 매우 간단합니다 우리는 우리가 가지고있는 많은 견고한 기술을 사용합니다 쉽게 이용할 수 있습니다 전반적으로 샘플 앱의 견고한 디자인입니다 이거 정말 좋다

IBRAHIM ULUKAYA : 사실, 플러스 디자인, 당신은 또한 몇 가지 안드로이드 기술 여기처럼, 당신은 실제로 NotificationCompat 그리고 그로부터 당신은 우리의 진보를 보여줄 수 있습니다 동영상 준비가 완료되었을 때뿐만 아니라 동영상을 볼 준비가되었습니다 클릭하면 비디오를 볼 수 있습니다

위에, 우리도 – 어쩌면 우리는 compat에 대해 이야기 할 수 있습니다 사실, 정말로 빨리, 우리는 이야기하고 싶었습니다 NotificationCompat에 관해서 그래서 YouTube 플레이어가 지원하는 API 수준을 잊어 버렸습니다 하지만 알림, 알림 기능이 있습니다

Android 41 이상에서만 사용할 수 있습니다 예를 들어, 추가 작업을 원하거나 귀하의 통지에 큰 이미지, 당신은 않을거야 새로운 API를 사용할 수 있습니다 그래서 우리는 NotificationCompat라고 불리는이 클래스를 가지고 있습니다 지원 라이브러리에 있습니다

기본적으로 어떤 새로운 API를 사용할 수 있습니다 Android 버전 그래서 여기, 통보를 위해, 나는 너를 믿는다 NotificationCompat 클래스를 사용했습니다 IBRAHIM ULUKAYA : 또한 NotificationCompat를 사용하여 분리 된 것

실제로 업로드를 시작하고 싶지 않을 때 업로드하여 앱을 방해합니다 따라서 사용자가 어디서든 앱을 사용하고 업로드, 사용자가 앱을 나가거나 닫는 경우 응용 프로그램, 난 정말 업로드 계속 싶어요 그래서 IntentService로 만듭니다 그래서 실제로 IntentService는 실제로 여기서 Compat를 사용합니다 그리고 이것을 사용하면 if보다 훨씬 더 가벼운 느낌을줍니다

그것은 기본적으로 별도의 스레드였습니다 전체 과정 진행 ROMAN NURIK : 예, IntentServices는 이 같은 IntentServices는 기본적으로 – 그래서 서비스는 단지 무언가입니다 백그라운드에서 실행됩니다

분명히 UI가 없습니다 그러나 서비스는 실제로 동일하게 실행됩니다 귀하의 UI로 스레드 따라서 스레딩에 아무 것도하지 않고 단순히 사용한다면 서비스, ​​그것은 실제로 같은 일을하고있을 것입니다 스레드를 UI로 사용하므로 UI가 중단 될 수 있습니다

IntentService는 실제로 매우 좋은 것입니다 기본적으로 스레드가 작업을 수행하는 것입니다 그리고 일이 끝나면 기본적으로 onHandleIntent 메서드가 완료되면 서비스, ​​그것은 스스로 멈추고 스레드를 죽인다 그래서 아주 좋은 방법입니다 실제로, 또한 대기열에 내장되어 있습니다

IntentService를 세 번 호출하면 첫 번째 작업을 수행하는 중입니다 실제로는 다른 두 개 대기열에 놓으면 나머지 두 명 끝내라 그것들이 끝나면, 그것은 스스로를 죽일 것입니다 그래서 정말 훌륭한 수업입니다 어떤 종류의 다운로드 또는 업로드, 그런 것들

아주 좋은 수업입니다 이브라힘 울루 카야 : 좋습니다 고마워, 로마 이제 실제로, 나는 또한 약간의 사용 된 YouTube API 및 YouTube 활용 방법 그래서 우리는 기본적으로 인증을 받았습니다 OAuth 2

0이었습니다 이를 위해 Google OAuth 인증 정보를 사용했습니다 정말 편리합니다 [INAUDIBLE] 그래야 거래 할 필요가 없습니다 토큰

새로 고칠 필요가 없습니다 또는 예외가있는 경우 예외가 모두 있습니다 덮어 씌우면 훨씬 더 쉽게 처리 할 수 ​​있습니다 그것이 [INAUDIBLE] 예외 인 경우 Google OAuth 자격증 명을위한 OAuth 2

0이 OAuth 20은 쉽게 사용할 수 있습니다 Play 서비스와 같은 예외가있을뿐만 아니라 사용할 수 없다면, 그것을 이해할 수있을 것입니다 또는 기록 가능한 예외처럼 뭔가가있는 경우 아마도 당신은 당신의 승인을 잃을 것입니다 실제로 있으면 [INAUDIBLE]을 (를) 팝업하십시오

표시 될 자체 승인 화면에서 당신은 아무런 실수없이 그것을 통과 할 수있을 것입니다 그것은 더 깨끗합니다 기본적으로 코드의 절반을 정리하는 데 실제로 도움이되었습니다 그것은 단지 인증 이었지만 정말 큰 문제였습니다 Google OAuth 계정을 사용하는 것이 좋습니다

그 자격 증명 또한 재개 가능한 업로드를 사용했습니다 재개 가능한 업로드는 실제로 데이터 API에 있습니다 당신은 한 장씩 업로드를합니다 업로드에 실패하면 [INAUDIBLE] 시도하여 가장 가까운 곳에서 업로드가 중단 된 위치부터 시작할 수 있습니다

끝까지 가버 리지 않고 끝까지 가야했다 처음부터 시작합니다 큰 파일을 업로드하는 경우 매우 유용합니다 그리고 작은 파일을 업로드하더라도 실제로는 정말 좋은 접근 방식을 업로드 할 수 있습니다 그리고 저는 실제로 정상적인 Java 재개 가능한 업로드를 그것을위한 자바 라이브러리, 그리고 그냥 안드로이드에 연결, 모든 것이 완벽하게 작동했습니다

업로드에서 우리는 실제로 끌어 오기 처리를 사용합니다 우리가 시작한 후에 실제로 Data API를 사용하고 있습니다 업로드, 우리가 소개 한 기하 급수적 인 백 오프와 함께, 우리는 계속 유지– 처리 상태를 당깁니다 그리고 일단 비디오가 준비되면, 우리는 당신이 할 수있는 것을 보여줍니다 이제 우리의 비디오를 시청하십시오

우리는 단지 다른 진행 상황 알림을 던집니다 NotificationCompat 우리는 여기에 많은 데이터 API를 사용합니다 실제로 업로드 재생 목록에서 자신의 동영상을 잡아 그리고 실제 업로드는 Data API입니다

실제 YouTube Direct Lite 제출은 기본적으로 [INAUDIBLE] 태그 추가, YouTube 재생 목록 추가 다이렉트 라이트 대쉬 재생 목록 ID, 태그의 종류 그래서 우리가 업로드하면, [INAUDIBLE]은 어느 재생 목록을 이해할 것입니다 당신은 그 비디오를 제출하고 싶습니다 그리고 그것은 Data API와 같았습니다 Google은 Google+ API를 조금만 사용하므로 Google+, 우리는 정말로 당신이 누구인지 알고 싶습니다

그리고 우리는 실제로 당신이 누군지 실제로 보여주고 싶습니다 실제로 우리가 당신을 이해한다는 것을 보여주고 싶습니다 우리는 당신이 누군지 알고 있으며, 실제로, 당신은 그것을 보낼 수있는 올바른 사용자입니다 다른 사람의 계정을 사용하고 있지 않습니다 이 과정에서 Google은 실제로 Google+에서 내 프로필 사진을 가져옵니다

너의 정체성 그리고 만약 당신이 데모로 돌아 간다면 조금 그리고 실제로 볼 수있는 데모에서는 Google+ 공유 버튼, Google +1 버튼 그리고 그렇게 [INAUDIBLE] 나는 실제로 여기에 갔다 그리고 그동안 나는 실제로 하나의 내가 전에 말했어야만했던 것

따라서 실제로 Google+를 클릭하면 실제로 공개적으로 버튼을 공유하십시오 아니면 그냥 취소 할 수 있습니다 그리고 Android [INAUDIBLE] 이전에 말한 것을 잊어 버렸고 Up 탐색 기능도 사용합니다 그래서 당신이 어떤 페이지에 있다면, 당신은 같은 것입니다 재검토, 돌아가고 싶다

항상 정상적인 뒤로 버튼을 사용하는 대신, 실제로 정말 멋진 업 내비게이션이 있습니다 그러면 홈 화면으로 이동합니다 이를 위해 네비게이션 트리를 만들면 실제 활동은 어떤 앱을 후진 시킬지를 안다 한 번 이상 너의 활동 – 네 그리고 실제로, 그것은 매우 어려웠습니다

Up을 구현합니다 글쎄,별로 어려운 것은 아니지만 많이 필요했습니다 Up을 올바르게 구현하려는 노력 하지만 이제 문자 그대로 몇 가지 추가 사항 만 있습니다 당신의 매니 페스트, 당신은 기본적으로 이것을 말할 수 있습니다

미리보기 활동 – 내가 부르는대로, 준비 구역의 종류 – 이 미리보기 활동, 그 부모 활동은 가정 활동입니다 그래서 안드로이드는 사용자가 위로를 누르면 버튼을 누르면, 기본적으로 그 매니페스트를 읽고 말합니다, 이봐, 나 가정 활동에 끌리기를 원한다 그리고 그것은 단지 당신을 위해 모든 것을 할 것입니다 과거에는 실제로 광고를 구현해야했습니다 onOptionsItemSelected 호출입니다

그리고 그것은 너무 많은 일이었습니다 그래서 우리는 그것을 매우 단순화했습니다 그리고 이것은 그것을 아주 많이 사용합니다 IBRAHIM ULUKAYA : 너무 기쁘다 나에게 5 분을 줬다

그리고 나는 그것을 정말로 즐겼다 또한 Android Player API를 사용하여 Play SDK에서 동영상을 만들면 그것을위한 완전히 새로운 UI보기 플레이어를 사용하기 만하면됩니다 그리고 플레이어의 [INAUDIBLE] 그것에 대한 모든 조치를 처리하는 방법 우리가 풀 스크린으로 갈 수있는 것처럼

그리고 우리는 [INAUDIBLE]의 비디오를 볼 수 있습니다 어디에서 그만 두었습니까? 그리고 돌아가서, [INAUDIBLE]은 그것으로부터의 무엇인가 ROMAN NURIK :이 미리보기 또는 준비 영역은 찍은 것과 같은 것들에 대한 비디오보기와 카메라 또는 갤러리, YouTube 플레이어 API를 당신이 선택한 어떤 것을위한 것입니다 그 격자는 처음에 IBRAHIM ULUKAYA : 예, 그래서 우리는 정말로 두 가지 모두에 대해 비슷한 인터페이스를 완성하십시오

그래서 당신은 이것이 실제로 두 번째 단계라는 것을 이해합니다 당신은 어느 단계에서 길을 잃지 않았습니다 당신은 정말로 당신이 사용할 수있는 주요 단계가 있다는 것을 알고 있습니다, 두 레코드 중 하나를 선택하고 기존 비디오 또는 재생할 수 있습니다 그리고 두 번째 단계에서, 당신은 그것을 승인합니다 그리고 그것은 주요 단계에오고, 그것은 당신이 업로드 중이거나, 이미 제출되었습니다

그리고 YouTube Direct Lite에 대한 모든 것이 었습니다 Android 앱 그리고 오늘 나에게 같이 온 것에 대해 고마워 네, 기꺼이 도와 드리겠습니다 IBRAHIM ULUKAYA : 그리고 우리는 항상 플러그를 꽂고 싶다고 생각합니다 개발자 관계 팀, YouTube와 Android 모두 전 세계 거의 모든 곳에서 채용되고 있습니다

로마 누리 크 : 항상 고용 이브라힘 울루 카야 : 우리는 항상 고용하고 있습니다 네가 우리와 함께하기를 희망한다 다시 생각 나게하기 위해 언제든지 신청할 수 있습니다 developer

googlecom/jobs는 물론 마음에 듭니다 오픈 소스 프로젝트는 githubcom/youtube입니다 YouTube 저장소 인 slash ytd dash android

그리고 [INAUDIBLE]에 가입 해 주셔서 감사합니다 뉴욕의 Ibrahim Ulukaya와 Roman Nurik 너를 만나

Maps Live: Map Padding in the Google Maps Android API v2

안녕하세요 Google 개발자의 에피소드에 오신 것을 환영합니다

살고 있다 저는 Google Maps Developer Relations 팀의 Sarah Maddox입니다 지도를 사용하는 방법을 보여 드리겠습니다 Google Maps Android API로 패딩 지도가있는 애플리케이션이 있다고 가정 해 보겠습니다

사이드 바를지도에 추가하려면 하지만지도 UI 컨트롤이나 Google을 숨기고 싶지는 않습니다 심벌 마크 추가하면 어떻게되는지 봅시다 지도 패딩을 추가하지 않고 사이드 바를 만듭니다 이 작은 데모 응용 프로그램에는 오른쪽에 사이드 바가 있습니다

그리고 내 위치 컨트롤 찾기를 볼 수 있습니다 오른쪽 상단에 있지만 사이드 바에 의해 가려져 있습니다 마찬가지로지도 확대 / 축소 컨트롤 오른쪽 하단에 있으며 완전히 숨겨져 있습니다 그래서이 응용 프로그램으로 내가 한 일은 padded라는 버튼을 추가합니다 그리고 내가 덧대는 단추를 만지면, 응용 프로그램은 다음과 같은 메소드를 호출합니다

지도의 오른쪽에 30 픽셀의지도 패딩을 추가합니다 이제 UI 컨트롤이 멋지게 보입니다 내 사이드 ​​바 왼쪽에 약간 표시됩니다 지도는 여전히 전체보기를 사용합니다 그러나 사용자 컨트롤과 제스처 그들이 단지 사용하지 않는 것처럼 행동한다

지도의 더 작고 눈에 보이는 부분 그래서 내 위치 찾기 찾기를 탭할 것입니다 그리고 당신은 작은 파란색 위치 표시기가지도의 중심에 잘 배치되어 있습니다 지도 패딩을 고려했습니다 이제 정상적인 버튼을 누르면 내지도에서지도 패딩을 제거한 다음 내 위치 버튼을 다시 찾으십시오

위치 표시기가 약간 움직 였는지 확인하십시오 오른쪽으로 가면 중심에서 벗어난 것처럼 보입니다 전체지도를 고려하고 있기 때문입니다 보이는 부분 대신에 좋아, 나는 시드니를 만지고 위치를 잡을거야

호주 수학의 중심 그래서 주위에 멋진 푸른 바다가 많이 있습니다 그러면 Google 로고를 볼 수 있습니다 화면 왼쪽 하단에 있습니다 이제는 애플리케이션 요구 사항에 주목할 가치가 있습니다 Google 로고를 표시합니다

Google 로고가 숨겨져 있다면 Google지도의 서비스 약관을 준수하지 않음 아피스 따라서 UI 컨트롤을 왼쪽 하단에 추가해야하는 경우 맵의 패딩은 좋은 방법입니다 Google 로고가 나타나는지 확인하십시오 자, 코드를 살펴 보겠습니다 매우 간단합니다

Google지도 세트 패딩 사용 메서드를 사용하여지도 가장자리에 패딩을 추가합니다 이 메서드는 패딩을 결정하기 위해 네 개의 매개 변수를 사용합니다 왼쪽, 위쪽, 오른쪽 및 아래쪽 가장자리에 매개 변수 이름은 기억하기 쉽습니다 왼쪽, 위쪽, 오른쪽, 및 바닥 지도 재 센터링 (re-centering)과 같은 카메라 업데이트, 자동으로 패딩 처리됩니다

따라서 오프셋을 직접 계산할 필요가 없습니다 그리고 언제든지지도 패딩을 동적으로 변경할 수 있습니다 세부 사항은 문서에 있습니다 또한 Google지도 API 데모 앱을 살펴보십시오 Google Play 서비스와 함께 제공됩니다

다음은 데모에 대한 설명서 링크입니다 앱 그것은 내가 여러분에게 보여준 것보다 더 복잡한 예입니다 예를 들어, 애니메이션을 추가 할 수 있습니다 사이드 바를 안팎으로 밀어 넣을 수 있습니다

패딩 데모는 데모 앱에서 보이는 영역이라고합니다 메뉴 감사합니다 Google에서이 동영상을 즐기 셨기를 바랍니다 개발자 라이브

YouTube Developers Live: YouTube Android Player API Overview

[음악 재생] JAREK WILKIEWICZ: 안녕하세요 유튜브 개발자 라이브에 오신 것을 환영합니다

오늘 여러분과 나눌 흥미로운 주제가 있습니다 런던에서 Ross McIlroy가 함께 합니다 Ross, 안녕하세요? ROSS MCILROY: 안녕하세요 감사합니다 어떻게 지내요? JAREK WILKIEWICZ: 잘 지내죠

저는 Jarek Wilkiewicz입니다 유튜브 Developer Relations팀에 있습니다 오늘 유튜브 안드로이드 Player API에 대해서 살펴보고자 합니다 Google I/O 프리젠테이션을 보셨다면, Ross를 알아보셨을 텐데요, 해당 세션에서 발표자로 나왔었습니다 Google I/O 이후로 꽤 바빴을 것 같은데요, Ross

이번 해 초였죠 IO 이후에 어떤 진행 사항이 있었는지 말씀해 주시겠어요? 네 신뢰할 수 있는 테스터와 API를 개선하여 제대로 동작하게 만들고 누락된 기능을 추가하며 모든 사항들이 빠짐없이 포함되어 앱에서 포함시킨 모든 유튜브 콘텐츠를 재생시킬 수 있는 작업을 해왔습니다 최종 다듬기 작업이 진행되고 있고 출시할 준비가 되었습니다 JAREK WILKIEWICZ: 좋습니다

애플리케이션 개발자들에게 API 사용법을 설명하기 위해 데모 세트를 준비하셨죠? 릴리즈에 포함되어 있는 예제 데모를 한두 개 살펴볼까요? ROSS MCILROY: 좋습니다 JAREK WILKIEWICZ: 네 Video Wall부터 시작해 봅시다 지금 바로 시작해 보겠습니다 좋아요

Video Wall은 모든 API 컴포넌트를 조합해서 만들어 볼 수 있는 예제라고 보시면 됩니다 썸네일 형식으로 된 간단한 데모라고 할 수 있죠 썸네일 중의 하나가 나와서 동영상이 됩니다 이 데모는 어떻게 동영상들을 UI안에 포함시켜서 프로그램에 따라서 재생하고 멈추게 하는지 보여줍니다 JAREK WILKIEWICZ: 좋습니다

다음으로, Simple PlayerView 데모도 포함되어 있네요 이 코드를 언제 포함시켜야 하는지 말씀해 주시겠어요? 네 Simple PlayerView는 API를 앱에 동영상을 임베드하여 사용하는 데 가장 간단한 방법입니다 그저 UI에 간단한 Player View를 임베드하는 것입니다 여기 텍스트밖에 없는데, 여러분은 원하는 것은 무엇이든지 넣을 수 있습니다

Player View를 임베드하는 것이 얼마나 간단한지 잘 보여주고 있죠 Simple PlayerFragment도 있습니다 기본적으로 동일한 데모이지만, Player View가 아닌 YouTubePlayerFragment를 사용하였습니다 다른 액티비티 확장이 필요한 경우에 사용하면 됩니다 Player View에서는, API의 일부로 제공되는 액티비티를 확장해야 합니다

PlayerFragment에서는, 원하는 액티비티를 확장하여 Fragment를 임베드하기만 하면 됩니다 JAREK WILKIEWICZ: 좋아요 Custom Player Control은요? ROSS MCILROY: 이것은 UI 컨트롤을 Player의 프로그램 요소로 연결하는 데모라고 할 수 있습니다 버튼으로 재생 또는 멈춤을 할 수 있습니다 여러분이 컨트롤할 수 있는 것이죠

내부에 이벤트 로그가 있어서 등록하거나 대기하는 다양한 콜백을 보여줍니다 예를 들어, 동영상을 재생하거나 동영상이 종료되거나, 멈춤 버튼을 사용자가 눌렀을 때 등입니다 JAREK WILKIEWICZ: 좋습니다 전체 화면 처리 부분에 개선 사항이 있다고 알고 있는데, 개발자들에게 있어서 전체 화면 처리는 언제나 까다로운 부분입니다 Custom Fullscreen Handling 예제에서 잘 보여주고 있죠

그렇습니다 네 디폴트로 전체 화면은 액티비티 위에 있는 대화 상자입니다 잘 동작하기는 하지만 버퍼링과 같은 문제를 수반합니다 사용자 지정 전체 화면은 전체 화면 다루기에 대한 우수 사례를 보여줍니다 그러한 경우에 레이아웃을 전체 화면으로 관리해야 합니다

그러면 버퍼링 없이 아주 부드럽게 전체 화면으로 이동할 수 있습니다 JAREK WILKIEWICZ: 그렇군요 어떻게 전체 화면을 애플리케이션에 포함시키는지 설명해주는 데모가 있습니다 Overlay ActionBar 데모인가요? ROSS MCILROY: 그렇습니다 Overlay ActionBar 데모는 전체 화면 모드에서 액션바가 오버레이 세트를 가지고 있을 때 플레이어 위에 액션바를 어떻게 오버레이할 수 있는지를 보여줍니다 예를 들어 액션바에서 사용자 지정 버튼으로 전체 화면에서 앱을 컨트롤할 수 있게 만들어 줍니다

액션바 이외에는 플레이어 위의 어떤 뷰도 오버레이할 수 있게 만들 필요가 없기 때문입니다 JAREK WILKIEWICZ: 그렇군요 라이트 박스로 동영상 재생이 수행되는 애플리케이션도 있네요 어떤 데모가 그 기능을 보여주나요? ROSS MCILROY: 말씀하신 것은 Standalone Player 데모입니다 동영상을 재생하는 것과는 다른 접근법을 보여주는데요, UI에 임베드하는 것이 아니라 대신 별도의 액티비티를 수행하는 것입니다

따라서 무척 간단하지만 그 만큼 유연성이나 제어권을 가지지 못하죠 라이트박스 모드를 클릭하고 동영상을 재생시키면 동영상이 밑에 있는 액티비티 위에서 보이는 것을 확인할 수 있습니다 따라서 UI와 함께 빠르게 미리보기를 보여주고 싶다면 좋은 선택이 될 수 있겠죠 JAREK WILKIEWICZ: 네 좋습니다

이 예제들이 모두 API 릴리즈에 포함되어 있죠? ROSS MCILROY: 네, 그렇습니다 라이브러리에서 제공하고 있습니다 바로 시작하실 수 있습니다 JAREK WILKIEWICZ: 좋습니다 이제 API를 검토해 봅시다

해당 API와 안드로이드 애플리케이션 연동에 대해서 조금 더 설명해 주실 수 있으신가요? ROSS MCILROY: 물론입니다 zip파일을 다운로드 하면 샘플 앱과 라이브러리 디렉토리가 있는데, API의 JAR를 포함하고 있습니다 애플리케이션에 API를 임베드하려면 JAR를 받아서 프로젝트 루트에 있는 LIBS 라이브러리에 복사하기만 하면 됩니다 클립이 있다면 자동으로 자바 classpath에 추가시켜 줍니다 바로 사용하시면 됩니다

앱에 이미 있습니다 한 가지 필요한 사항은 구글 API 콘솔에 개발자 키를 등록하는 것입니다 이것만 완료하면 API를 초기화하고 사용할 수 있습니다 JAREK WILKIEWICZ: 좋습니다 안드로이드 애플리케이션에 동영상 재생을 포함시키는 데 4가지 다른 방법이 있는데요

해당 API를 설명해 주시겠어요? 모든 정보와 함께 Java docs를 가지고 있는 것으로 아는데요, 주요 클래스에는 어떤 것들이 있는지 간단히 보여주시겠어요? ROSS MCILROY: 물론입니다 마지막으로 보여드린 데모가 Standalone Player였습니다 이것이 Standalone Player를 위한 클래스 입니다 여기 코드를 확인하실 수 있는데요 예제를 가지고 있습니다

Standalone Player를 만다는데는 코드 두 줄이면 됩니다 재생시키고자 하는 동영상 ID를 넣으세요 이 클래스로 만들 수 있는 여러가지 다양한 인텐트로 동영상이나 동영상 목록을 재생하거나 라이트 박스 모드를 사용할 수 있습니다 인텐트를 시작하면, 액티비티를 던지게 되고 동영상이 재생됩니다 아주 간단하긴 하지만 다소 유연성이 낮은 동영상 재생법이죠

본인의 UI에 유튜브 동영상을 임베드하고 싶다면, 세 가지 클래스를 사용할 수 있습니다 PlayerView와 PlayerFragment 그리고 PlayerSupportFragment가 있습니다 모두 같은 방법으로 효과적으로 동작합니다 뷰를 제공하는데, 앱 UI에서 확대할 수 있고 프로그래밍으로 인스턴스화할 수도 있습니다 초기화 메소드를 UI 요소에서 부르고 개발자 키와 onInitializeListener를 넘겨줍니다

API 초기화에 성공하면 onInitializeListener를 통해서 콜백을 받게 됩니다 콜백으로 이 유튜브 플레이어 오브젝트 중에 하나를 얻게되는 것입니다 YouTube 플레이어 오브젝트는 기본적으로 전체 API에서 주요 오브젝트입니다 따라서 PlayerView나 PlayerFragment에서 동영상 재생을 컨트롤할 수 있게 해줍니다 동영상을 로딩하고 대기 행렬을 만들며 재생 목록 요소에서 건너뛰거나 동영상을 찾는 등, API에서 기대할 수 있는 모든 기능을 수행할 수 있습니다

또한 다양한 콜백 이벤트, 재생 이벤트, 플레이어 상태 변경 및 전체 화면 이벤트 등을 등록할 수 있습니다 API를 사용하여 유튜브 동영상을 재생할 수 있는 마지막 방법은 YouTubeIntents 클래스를 통하는 방법입니다 그리고 이는 기본적으로 편의 메카니즘으로 인텐트를 만들어서 유튜브 안드로이드 애플리케이션 자체를 시작하도록 해줍니다 따라서 많은 사람들이 과거에 이 방법을 사용해서 각자의 YouTube URL을 만들어 인텐트로 넘겨줘서 동영상을 재생해 왔습니다 이는 동영상을 전체 화면에서 재생하거나 재생 목록을 재생하거나 사용자의 액티비티를 앱 자체에서 열기 위한 다양한 옵션과 함께 표준화된 방식을 생성합니다

JAREK WILKIEWICZ: YouTubeStandalonePlayer가 시작하기에 가장 간단한 방법이군요 PlayerView와 PlayerFragment만이 더욱 섬세한 사용자 인터페이스를 구축할 수 있습니다 그리고 YouTubeIntents 클래스가 기본적으로 유튜브 앱에서 사용가능한 인텐트를 둘러쌉니다 그리고 애플리케이션에서부터 앱을 불러옵니다 ROSS MCILROY: 네

그렇습니다 JAREK WILKIEWICZ: 좋아요 초기화 프로세스의 일부로서 여러가지 에러를 맞닥뜨릴 수 있다고 말씀하셨는데요 어떠한 에러들이 있으며 이를 해결하기 위한 우수 사례에는 어떠한 것들이 있는지 간단히 말씀해 주시겠어요? ROSS MCILROY: onInitializationFailure 결과값을 받게 되는데요, 유튜브 초기화 결과값과 함께 콜백을 제공하게 됩니다 여기 보이는 enum에서 무엇이 잘못 됐는지에 대한 다양한 옵션을 가지고 있죠

API 서비스에 연결하는데 있어서 다양한 오류가 생길 수 있습니다 만날 수 있는 에러 가운데 유효한 개발자 키값이 아닐 경우 DEVELOPER<u>KEY<u>INVALID나</u></u> INVALID<u>APPLICATION<u>SIGNATURE를 받을 수 있습니다</u></u> 여러분의 애플리케이션 APK가 구글 Play 스토어에 업로드되기 위해 서명된 것과 같은 방법으로 서명되어야 합니다 그리고 그 외에도 복구 가능한 다양한 옵션들이 있습니다 예를 들어, SERVICE<u>DISABLED,</u> SERVICE<u>MISSING나 SERVICE<u>VERSION</u></u> UPDATE<u>REQUIRED 등이 있죠

</u> 이 초기화 결과값 중에 하나를 받으면, 메소드는 복구 가능한 에러를 발행하고 true 값을 반환하게 됩니다 즉 사용자가 API가 동작하게 할 수 있는 방법이 있다는 의미입니다 사용자가 유튜브 앱을 망가뜨렸거나 삭제했을 수도 있습니다 또는 해당 API 서비스를 지원하지 않는 이전 버전을 가지고 있을 수도 있죠 이러한 에러 중 하나일 경우, 유튜브 초기화 결과에서 에러 대화 상자를 받게 됩니다

대화 상자를 만들고 사용자에게 문제를 알려줍니다 예를 들어, 유튜브 앱을 업데이트 해야하는 경우라고 합시다 누를 버튼을 주고, 그 버튼을 누르면 마켓으로 가서 업데이트할 수 있게 해줍니다 액티비티를 반환하면 해당 액티비티 결과에 대한 에러 대화 상자에 넘긴 request 코드를 다시 전달합니다 그리고 성공적으로 해결되었는지를 확인할 수 있습니다 성공적으로 해결된 경우 PlayerView나 PlayerFragment를 다시 초기화합니다

JAREK WILKIEWICZ: 좋습니다 일반적인 에러 두 가지가 모두 개발자키와 연관이 되어있네요 API가 개발자 키를 필요로 한다는 거죠 기존의 플레이어 API와는 다르게 말이죠 실제로 함께 일하는 분들이 해당 예제를 실행시킬 때 이러한 문제를 자주 접하는 경우를 보았습니다

그러한 경우 개발자 키를 바꾸어야 합니다 30 버전 개발자 키를 개발자 콘솔에서 받을 수 있습니다 유튜브 Data API 버전 3에 대해서 더 많이 알고 싶으시다면 apiblogyoutube

com 블로그에 오셔서 추가적으로 정보를 확인하세요 해당 API는 최근에 출시되었습니다 그리고 다른 하나는 사용자가 복구할 수 있는 것으로 API가 수행되는 버전을 확인하는 것과 연관되어 있습니다 애플리케이션 개발자가 사용자와 함께 작업하여 사용자와 협력하여 디바이스에서 API를 수행하는데 필요한 경우 앱을 업데이트할 수 있도록 해주는 부분입니다 해당 API가 안드로이드 2

2 이상의 버전을 지원합니다 그렇죠? ROSS MCILROY: 그렇습니다 22 이상이죠 Froyo부터 Jellybean에 이르기까지 지원합니다

JAREK WILKIEWICZ: 좋습니다 API에 관해서 또 다른 질문이 있는데요, 라이브 스트리밍 재생도 지원하나요? ROSS MCILROY: 라이브 스트리밍 재생도 지원합니다 하지만 유튜브에서 사용되는 동영상 포맷으로 인해서 Honeycomb MR1 이상의 안드로이드 디바이스에서 라이브 동영상을 지원합니다 플랫폼 버전 31이 되겠네요

디바이스 버전이 31 이상이라면, 라이브 동영상을 재생할 수 있을 것입니다 그렇지 않을 경우에는 재생이 되지 않구요 JAREK WILKIEWICZ: 그렇군요 호환성에 관해서 말씀드리자면, 애플리케이션 개발자가 할 수 있는 근본적인 잘문은 "내 디바이스와 라이브러리가 호환되나요" 일 것입니다

라이브러리가 실행되기 위한 선행 조건들을 다 갖추고 있는가? 하는 점이죠 그렇다면 어떻게 라이브러리가 자신의 디바이스를 실제로 지원하는지 알 수 있을까요? ROSS MCILROY: 네 그렇죠 YouTubeApiServiceUtil 클래스를 제공하는데요, 그 안에, isYouTubeApiServiceAvailable 호출이 있습니다 호출을 하면 YouTubeInitializationResult 중 하나를 다시 받게 됩니다

그리고 다시 API가 존재하고 사용 가능하다는 의미의 성공 결과 값을 주거나 사용자가 복구할 수 있도록 해주는 대화 상자를 초기화 할 수 있는 결과 값들 중에 하나를 줍니다 또는 동영상을 재생할 다른 방법을 알아내고 사용할 수 있는 다른 에러가 있을 수도 있습니다 JAREK WILKIEWICZ: 좋습니다 초기화와 관련하여 오래된 안드로이드 디바이스로 작업을 하는 경우 주의해야할 사항이 있나요? 라이브러리 초기화가 얼마나 걸리는지 조금만 설명해 주시겠어요? ROSS MCILROY: 초기화는 비동기식입니다 서비스가 제공되는 액티비티가 돌아가기까지 어느 정도 시간이 걸리기 때문입니다

따라서 오래된 버전에서는, 유튜브 앱이 실행되지 않는다면 1초 정도가 소요될 수 있습니다 실행되는 경우, 플레이어의 UI는 스피너 로딩을 가지게 됩니다 그리고 그것은 UI 스레드를 막지 않습니다 따라서 여러분의 애니메이션이나 그래픽에 영향을 주지는 않을 것입니다 하지만 실행될 때까지 플레이어는 사용할 수 없을 것입니다

오래된 버전의 디바이스에서 해당 부분이 우려되시면 초기화가 성공될 때까지 Player View를 숨기고 그리고 나서 동영상을 로딩하면 됩니다 하지만 보통 요즘 디바이스에서는 Player View가 초기화될 때 200 밀리세컨드 미만일 것입니다 Player View가 초기화되고 나면, 서비스가 동작합니다 매번 연결하는 것이 훨씬 빠를 것입니다 JAREK WILKIEWICZ: 좋습니다

그리고 말씀하셨듯이, 전체 프로세스가 비동기식입니다 따라서 개발자는 주어진 애플리케이션을 위해서 최선의 기회에 초기화를 트리거할 수 있습니다 ROSS MCILROY: 그렇죠 그리고 UI는 서비스를 로딩하는 동안에 첫 번째 동영상을 로딩할 때 버퍼링과 비슷합니다 따라서 끊김없는 트랜지션을 제공합니다

API 초기화와 첫 번째 동영상 버퍼링 사이의 차이를 사용자는 눈치채지 못합니다 JAREK WILKIEWICZ: 좋습니다 시간 내어 주셔서 감사합니다, Ross 이제 가서 명절 쇼핑 하셔야겠네요 그렇죠? ROSS MCILROY: 그렇습니다

API 개발하느라 명절 쇼핑하기에는 너무 바빴네요 JAREK WILKIEWICZ: 그렇군요 명절 이전에 충분한 시간을 가지시길 바랍니다 감사합니다 개발자 라이브를 시청해주신 분들도 감사드립니다

유튜브 개발자 라이브에서 다시 찾아 뵙겠습니다 [음악 재생]

How to connect cctv camera to mobile | ANDROID OR iPhone | Watch Live CCTV Camera Footage on Mobile

안녕하세요 내 YouTube 채널 "MyTechnoSoup"에 오신 것을 환영합니다

나는 Ajay이다 오늘 저는 휴대 전화로 Hikvision CCTV 카메라를 시청하거나 접속하는 방법을 보여 드리려고합니다 그래서 시작하자 DVR 또는 NVR에 로그인하십시오 그런 다음 구성 탭으로 이동하십시오

이제 왼쪽 메뉴에서 "네트워크"탭을 클릭하십시오 "일반"설정 탭에서 "DHCP 사용"확인란을 클릭하십시오 이제 "플랫폼 액세스"를 클릭하고 원하는대로 확인 코드를 입력 한 다음 확인란을 클릭하십시오 상태가 "오프라인"이 아닌 "온라인"이어야하는지 확인하십시오 이제 Play 스토어 앱을 열고 'Hik-Connect'앱을 다운로드합니다

당신의 나라를 선택하시오 로그인 버튼을 클릭하십시오 이제 "등록"을 클릭하십시오 하나의 옵션을 선택하십시오 제 경우에는 "휴대 전화 번호로 등록"을 선택합니다

당신의 나라를 선택하시오" 모바일 번호를 입력하십시오 "보안 코드 가져 오기"를 클릭하십시오 "보안 코드"를 입력하고 "다음"을 클릭하십시오 "이제"사용자 이름 "과"암호 "를 만들고"마침 "을 클릭하십시오 이제 "장치 추가"를 클릭하십시오

이제 MOBILE에서 접속하고자하는 DVR 또는 NVR의 "QR"코드를 스캔하십시오 장치 "사용자 이름"및 "암호"를 입력하십시오 와우 끝났어 이제 스마트 폰에서 CCTV 카메라를 모니터링 할 수 있습니다 더 많은 비디오를 우리 채널에 구독하는 것을 잊지 마십시오 의심스러운 경우 댓글을 남겨주세요 둘 이상의 DVR / NVR이있는 경우 감시를 계속하십시오

보시다시피 위대한 앱이므로 모든 기능을 사용할 수 있습니다 다른 장치를 추가하려면 더하기 아이콘을 클릭하십시오 추가하려는 장치에서 QR 코드를 다시 스캔하고 동일한 프로세스를 따르십시오