1x SDK&DEMO x framework x APPKEY APPSECRETKEY x... 15

Podobne dokumenty
1 3







0 5 F: X ^ ' F ' % 6 [ + F : `a[ F C ^ $< < W F MD4 4 = 9 B Z S ` '" 4 2> $ R&^ 6 7 \ = 9Q : > L,,U [, [ B P < 3. 3 A _ < \ F 4 M? cf $ 3

Over-the-Top czyli jak pokonać problemy technologiczne telewizji w sieci IP ISP


Tworzenie zaawansowanych aplikacji w środowisku ios. Wykład 2 Objective-C. Tomasz Idzi

Frameworki IOS. Wykład 14. Programowanie aplikacji mobilnych na urządzenia Apple (IOS i ObjectiveC) #import "Fraction.h" #import <stdio.

AIUI WebAPI V1 {#3-1} {#3-2} {#3-2-2} AIUI. Github WebAPI. 1. APPID CurTime, Param CheckSum HTTP. 3. http https. Http Request Header

Budowa nowoczesnej aplikacji SPA z wykorzystaniem biblioteki Ember.js

Czysta architektura (nawet z Django!) Sebas an PyWaw 72

KAM-TECH sklep internetowy Utworzono : 24 październik 2016

cocos2d & Chipmunk Tworzenie gier 2D pod ios Konrad Kołakowski, Playsoft

Programowanie dla iphone projektowanie interfejsu użytkownika

Klasy Obiekty Dziedziczenie i zaawansowane cechy Objective-C

MonoGame. Wieloplatformowe gry w C# Mateusz Cicheński

DOKUMENTACJA TECHNICZNA SMS API MT

PassMark - CPU Benchmarks - List of Benchmarked CPUs

Technologie Komponentowe. Piotr Łukasik p /

KAM-TECH sklep internetowy Utworzono : 22 grudzień 2015

KAM-TECH sklep internetowy Utworzono : 18 listopad 2014

SG-R... SPRĘŻYNY GAZOWE P (2 x S) 60+(2 x S) 42/45+(2 x S) 50+(2 x S) 32+(2 x S) 38+(2 x S) P.67 P.68 P.69 P.70 P.71 P.72

Najlepsze drukarki 3D


Temat 3. Projektowanie interfejsu użytkonwnika Kalkulator pierwszy program dla IOS

Kurs języka Python. Wykład 5. Marcin Młotkowski. 9 listopada Rodzaje parametrów funkcji. 2 Biblioteka Tk. 3 Układanie kontrolek w oknie

IPC-PTZ152X25-DF. Do pobrania: Główne Cechy: Kamera IP PTZ 2Mpx. Zdjęcia kamery Widok menu.

Weryfikowana konfiguracja stanowiska roboczego: Sprzęt:

KAM-TECH sklep internetowy Utworzono : 03 październik 2017


KAMERA WANDALOODPORNA IP DH-IPC-HDBW2230RP-ZS p mm - MOTOZOOM DAHUA Numer produktu: 23280

Zaawansowany kurs języka Python

KAM-TECH sklep internetowy Utworzono : 16 czerwiec 2016

KAM-TECH sklep internetowy Utworzono : 17 marzec 2015

Jak okiełznać frontend w Django? Piotr Maliński

ONTEC C DYSKRETNA OCHRONA

KAM-TECH sklep internetowy Utworzono : 09 marzec 2016

KAM-TECH sklep internetowy Utworzono : 18 grudzień 2015

The OWASP Foundation Session Management. Sławomir Rozbicki.

Software package and information systems

PowerFlow Sundial: 7 $ 0 & Avanc Compatible 8 & - & & 9 & -. ,! " #$%& ' ()$%& * & +, - <.! + . / & = & ! / - 4.

Nadchooooodzi FireMooooooooonkey!

Comarch e-sklep Sync. wersja

-czyli jak pozwolić adminowi spać w nocy

n+1 sposobów na automatyczne testy aplikacji mobilnych WrotQA, webinar Łukasz Siudakiewicz Damian Szczurek Automation Test Engineer

Jerzy Kosiński Wyższa Szkoła Policji w Szczytnie

BIG SISTER SYSTEM MONITORINGU SIECI DLA LINUX/UNIX I WINDOWS. Michał (traq) Żuchowski. traq@shl.pl

Wprowadzenie Architektura Więcej szczegółów Podsumowanie. Google App Engine. Alicja Łuszczak. 8 stycznia 2010

Quiz Aplikacja internetowa

Inquiry Form for Magnets

KAMERA IP GT-CI11V1-28W ONVIF 2.0, - 720p 2.8 mm GEMINI TECHNOLOGY Numer produktu: 20868

mysql> UPDATE user SET Password=PASSWORD('pass') WHERE user='root'; Query OK, 2 rows affected (0.05 sec) Rows matched: 2 Changed: 2 Warnings: 0

Home Software Hardware Benchmarks Services Store Support Forums About Us

JĘZYK PYTHON - NARZĘDZIE DLA KAŻDEGO NAUKOWCA. Marcin Lewandowski [ mlew@ippt.gov.pl ]

Zaawansowany kurs języka Python

Dokumentacja interfejsu HTTPD. Platforma BSMS.PL Instrukcja podłączenia po przez http

Tworzenie własnych Smart Mobile Apps dzięki MobileHMI. ICONICS Worldwide Customer Summit

NoSQL Not Only SQL, CouchDB. I.Wojnicki, NoSQL. Apache CouchDB has started. Time to relax. Igor Wojnicki

Zestyki 1 P 1 N 3 P + N 2 P 3 P 3 P + N

Zaawansowany kurs języka Python

T O M A S Z N I T K A

Specyfikacja techniczna. mprofi Interfejs API

Wieloplatformowe aplikacje sieciowe. dr inż. Juliusz Mikoda mgr inż. Anna Wawszczak

Dokumentacja REST API v 3.0. Kraków, 7 marca FreshMail, ul. Fabryczna 20a, Kraków tel , freshmail.


Architektury Usług Internetowych. Laboratorium 2 RESTful Web Services

FLEX ( ) Przygotowanie środowiska developerskiego Hello world w MXML Hello world w ActionScript

Home Software Hardware Benchmarks Services Store Support Forums About Us

KAM-TECH sklep internetowy Utworzono : 09 lipiec 2018

KAM-TECH sklep internetowy Utworzono : 02 luty 2016

Sample VNF Rack and VNF Descriptor Configuration File

Programowanie dla ios

!"#$%&' % ( )* +,-!./0 1 % : ; < A+ 89 BCD.! )*E F GHIJ EK7LMNO PQRSTUVW89 56./0: Z[0 Z\]Y ^_`!abcn 7 E YQ "!EK GH < 8 0 0A`! 5

Wprowadzenie do psql i SQL. Język komend psql. Podstawy instrukcji SELECT

Tworzenie zaawansowanych aplikacji w środowisku ios. Wykład 7. Saving data in ios

L.p. Poprawka Opis Kategoria Data instalacji

Wprowadzenie do Objective-C

Aneks do instrukcji obsługi routera Asmax Br-804v II

Weryfikowana konfiguracja stanowiska roboczego: Sprzęt:

KAM-TECH sklep internetowy Utworzono : 21 marzec 2016

LiveSpace API. Aktualizacja: 16 stycznia 2015 Wersja: 0.6. LiveSpace CRM tel: ,

TD/TA SIŁOWNIKI DO PRZEPUSTNIC. Siłowniki do przepustnic / Actuators for dampers

TD/TA SIŁOWNIKI DO PRZEPUSTNIC. Siłowniki do przepustnic / Actuators for dampers

ONTEC P OPRAWA, KTÓREJ NIE WIDAĆ INVISIBLE FITTING

Engineering design services

TelCOMM Wymagania. Opracował: Piotr Owsianko Zatwierdził: IMIĘ I NAZWISKO

1d 18. 4a 4b 5 3d*** 4e*** 3b. 5a 5d. 5b 4c 8b 8g 3a. 8c ** 8n 9b 9e** 9a. 9p 9q* 9m 9o 9k 9d 9h 9 9j. 18a. 9r 9f. 1f 11b. 11c ** 1i* 11 11a 2b 10n

Tuber radio BT MA407. Instrukcja obsługi User s Manual

Smakołyki tworzenia aplikacji mobilnych w Delphi

Przechowywanie danych w IOS

Dni Użytkowników Aplikacji QAD Interoperacyjność z QXtend

Transmisja danych multimedialnych. mgr inż. Piotr Bratoszewski

Parametry fakturowania. Cennik (eksport) SANDA SP. Z O.O. TRAUGUTTA KOLUSZKI. Szanowni Państwo,

Security services. Generell Informasjon. Oppdragsgiver. Versjonsendringer Contract award. Versjon 3. Dato for offentliggjørelse

Transkrypt:

SDK for ios 1

x... 7 x... 7 x... 8 x... 9 x SDK... 10 1x SDK&DEMO... 10 2x... 10 3x ATS... 10 4x... 10 5x Demo... 13 6x framework... 14 x SDK... 14 x APPKEY APPSECRETKEY... 14 x... 15 1x... 15 2x... 15 3x... 15 4x... 15 5x... 15 6x... 16 7x... 16 8x... 16 4x... 16 2

10x... 17 11x... 17 12x... 17 13x... 17 14x... 17 x... 18 1x VHMoviePlayer... 19 2x zrtmp{... 19 3x ( HLS,2.3.4 )... 19 4x ( HLS )... 20 5x... 20 6x... 20 7x... 20 8x... 21 9x /... 21 10x... 21 11x... 21 x zvhallapi.h{... 23 1x... 23 2x... 24 3x... 24 4x... 24 x... 24 1x... 25 3

2x... 25 3x... 25 4x z{... 25 5x z{... 25 x... 25 1x... 26 2x... 26 3x... 26 4x z{... 26 x... 26 1x... 26 2x... 26 3x... 26 4x z{... 27 5x z{... 27 x... 27 1x... 27 2x... 28 3x}... 28 x... 29 1x()... 30 2x VHallLivePublishFilter, VhallLivePublish... 30 3x... 30 4xid <VHallLivePublishFilterDelegate> GPUFilterDelegate... 30 4

x... 31 1x... 31 2x... 31 x... 32 1x(VHallMoviePlayerDelegate)... 32 2x UI... 32 x... 32 1x... 32 2x... 33 3x... 33 4x... 33 5x... 34 x... 34 1x z VhallSurveyDelegate{... 34 2x ID... 35 3x... 35 x... 35 xdemo... 37 x K... 38 a)... 38 b)... 38 c) K... 39 x... 40 5

d) 2.3.0 2.4.0... 40 6

x 2016-04-21 V2.1.2 xy 2016-05-06 V2.2.0 xy 2016-07-26 V2.3.0 lkl 2016-09-27 V2.4.0 xy 2016-11-10 V2.5.0 wxx 20 2016-12-20 V2.5.3 wxx MP4 Https 2017-3-1 V2.6.0 wxx 2017-3-13 V2.7.0 V2.7.0 cy x ajn u N?Fv S>g] y 5 }AAC}H.264 RTMP 352*288/640*480/960*540/1280*720 x / / x ios 8.0 z{ iphone 5sz{ ios7.0 RTMP RTMP: 2-4 7

H.264 HLS MP4 K x znew{ x znew{ znew{ znew{ + znew{ x xxx / y y 8

x 1. Key API&SDK 4006826882 y }App_KeyxApp Secret_Key y 2. SDK uv y Ø http://e.vhall.com/home/vhallapi/authlist API/SDK y Ø y 9

Ø Ø y IOS-SDK BundleID yzbundle Identifier Targets General { xsdk 1x SDK&DEMO github }https://github.com/vhall20/vhallsdk-ios-live/releases 2x ios }ios 7.0 iphone }iphone 5 CPU } armv7, arm64 i386 x86_64 y 3x ATS cnhlsvod01.e.vhall.com cnstatic01.e.vhall.com cdn https 4x QCddN?F } 10

11

12

5x Demo 13

6x framework x SDK VHallApi.h xsdk y * N?F ;i]klifn?f * &INNkiaf_jcQ]ijagf6 xappkey AppSecretKey VHallApi.h * 14

hh hhda[kagf5pd<hhda[kagfhhda[kagf aaafajglf[af_rakjhkagfj5in?a[kagfipdlf[jhkagfj ;hiehhf]pmddhhc]p ;hiehhf]pmddhhj][i]kf]p * &mgai]_ajk]i<hh5innkiaf_hhf]pn][i]kf]p5innkiaf_j][i]kf]p6 x VHallLivePublish.h 1x * ;hiegi_akagf ;i]klif * (aafakrakji_akagf5?]ma[]ji_akagfgi_akagf6 2x * >hkli]qa]g ;hie[hkli]?]ma[]kgjakagf <Q>hkli]?]ma[]Kgjakagf=[c <Q>hkli]?]ma[]KgjakagfAigfk ;i]klif * (=JJGafak>hkli]Qa]g5<Q>hkli]?]ma[]Kgjakagf[hkli]?]ma[]Kgjakagf6 3x (=JJGafak<lag6 4x (=JJGjkik<lag>hkli]6 5x 15

* ;hiehie hieu; a V8D hieu; [[]jjxkgc]f V8 * (mgajkikgam]5in?a[kagfiphie6 6x * jkikgam]jkikgam]jkghgam] * (mgajkghgam]6 7x * ;hie[hkli]?]ma[]kgjakagf ;i]klif * (=JJGjnh>e]ij5<Q>hkli]?]ma[]Kgjakagf[hkli]?]ma[]Kgjakagf6 8x * * (mgaj]kagl[jagafk5>bkgafkf]nkgafk6 4x * ;hieggena] 16

* (mga[hkli]?]ma[]tgge5>badgkggena]6 10x * * (=JJGj]k?]ma[]Ogi[Hg]d5<Q>hkli]Ogi[Hg][hkli]Ogi[Hg]6 11x * * (=JJGi][gff][k6 12x * 'hh * (mgaaj[gff][k6 13x * * (mga]jkgipjzb][k6 14x >e]i@f_af]mkeh?]d]_k] Jh]f>JINON),x * ;hieae_] * (mga^aijk>hkli]de_]5pdde_]ae_]6 * 17

;hiedam]nkklj ;hieaf^g r; [g] 5oo'; [gfk]fk }ooos [g]}*z+',w{[gfk]fk} 'x * (mgahlzdajnkklj5gam]nkkljdam]nkkljnakdf^g5in?a[kagfipaf^g6 *** kph]]^inx@iphafk'gam]nkklj r cgam]nkklj=l^^]iaf_nkik8+'** cgam]nkklj=l^^]iaf_nkgh8,'** cgam]nkkljklj>gff][knl[[]]8-'** cgam]nkkljklj>gff][k@iigi8.'** cgam]nkklj>?i>gff][knl[[]]8/'**>?i cgam]nkklj>?i>gff][k@iigi80'**>?i cgam]nkkljkie@iigi81'** cgam]nkkljm][m@iigi82'** cgam]nkkljn]f@iigi83'** cgam]nkklj?gnfdgnh]]84'** cgam]nkkljphdgnh]]8,+'** cgam]nkklji]kngicnkklj8,,'**98+7+ ** cgam]nkkljb]kpid@iigi8,-'** cgam]nkkljrak<fc]a_k8,.'** cgam]nkklj<lagdf^g8,/** s6 cgam]nkkljb]kpid@iigi 10030 10401 10402 ID 10403 10409 10410 10411 x VHallMoviePlayer.h 18

1x VHMoviePlayer * QCHgma]Kdp]i ;hie]d]_k] ;i]klifqchgma]kdp]i * (afjkf[]kph]afakrak?]d]_k]5a7qcddhgma]kdp]i?]d]_k]9]d]_k]6 2x zrtmp{ * ;hiehie hieu; a V8D hieu; fe] V8 hieu; ]ead V8 hieu; hjj V8FF * (=JJGjkikKdp5IN?a[kagfiphie6 3x ( HLS,2.3.4 ) * CGN ;hiehie hieu; a V8D hieu; fe] V8 hieu; ]ead V8 hieu; hjj V8FF ;hieegma]kdp]i>gfkigdd]ihkhgma]kdp]i>gfkigdd]i * (mgajkikkdp5in?a[kagfiphieegma]kdp]i5hkhgma]kdp]i>gfkigdd]i egma]kdp]i>gfkigdd]i6 19

4x ( HLS ) * CGN ;hiehie hieu; a V8D hieu; fe] V8 hieu; ]ead V8 hieu; hjj V8FF ;hieegma]kdp]i>gfkigdd]ihkhgma]kdp]i>gfkigdd]i *(mgajkikkdpz[c5in?a[kagfiphie egma]kdp]i5hkhgma]kdp]i>gfkigdd]iegma]kdp]i>gfkigdd]i6 5x * ;hieelk] * (mgaj]khlk]5=jjgelk]6 6x * ;hieja]^dgku+)+t,)+v * &mgaj]knpjqgdle]na]5^dgkja]6 7x * * &^dgk_]knpjqgdle]na]6 20

8x * * (mgajkghkdp6 9x / * z{ ;i]klif y y * (QCddHgma]?]^afakagfj]k?]^afakagf5QCddHgma]?]^afakagf]^afakagf6 ** 直播视频清晰度 kph]]^inx@iphindfk]_]i'qcddhgma]?]^afakagf r QCddHgma]?]^afakagfJia_af8+'** QCddHgma]?]^afakagfPC?8,'** QCddHgma]?]^afakagfC?8-'** QCddHgma]?]^afakagfN?8.'** QCddHgma]?]^afakagf<lag8/** s6 10x * * (mga]jkigphgam]kdp]i6 11x QCHgma]Kdp]i?]d]_k] Jh]f>JINON) * ;hieegma]kdp]i ;hieaf^gr; [g] 5oo'; [gfk]fk }ooos 21

[g]}z+',w{[gfk]fk} * (mga[gff][knl[[]]5qchgma]kdp]iegma]kdp]iaf^g5in?a[kagfipaf^g6 * ;hieegma]kdp]i ;hieaf^gr; [g] 5oo'; [gfk]fk }ooos [g]}z+',w{[gfk]fk} * (mgazl^^]inkik5qchgma]kdp]iegma]kdp]iaf^g5in?a[kagfipaf^g6 * ;hieegma]kdp]i ;hieaf^gr; [g] 5oo'; [gfk]fk }ooos [g]}z+',w{[gfk]fk} * (mgazl^^]inkgh5qchgma]kdp]iegma]kdp]iaf^g5in?a[kagfipaf^g6 * ;hieegma]kdp]i ;hieaf^gczhjr; [g] 5oo'; [gfk]fk }ooos [g]}z+',w{[gfk]fk} * (mgagnfdgnh]]5qchgma]kdp]iegma]kdp]iaf^g5in?a[kagfipaf^g6 * ;hieegma]kdp]i ;hieaf^gr; [g] 5oo'; [gfk]fk }ooos [g]}z+',w{[gfk]fk}[gfk]fk * (mgaf]krgicnkklj5qchgma]kdp]iegma]kdp]iaf^g5in?a[kagfipaf^g6 * ;hie]^afakagfgajk * (mgaqa]g?]^afakagfgajk5in<iip]^afakagfgajk * ;hiedam]kdp@iigioph] ;hieaf^gr; [g] 5oo'; [gfk]fk }ooos [g]}z+',w{[gfk]fk} 22

* (mgahdp@iigi5gam]kdp@iigioph]dam]kdp@iigioph]af^g5in?a[kagfipaf^g6 ** kph]]^inx@iphafk'gam]kdp@iigioph] r cgam]kdpb]kpid@iigi8cgam]nkkljb]kpid@iigi'**ikehpid cgam]kdpkie@iigi8cgam]nkkljkie@iigi'** cgam]kdpm][m@iigi8cgam]nkkljm][m@iigi'** cgam]kdp>?i>gff][k@iigi8cgam]nkklj>?i>gff][k@iigi'**>?i cgam]kdpejgfagied@iigi8,0**bjgf s6 cgam]kdpb]kpid@iigi 10030 10402 ID 10405 10049 10404 KEY 10046 10405 ID 10047 10048 10410 xzvhallapi.h{ WebApi y y http://e.vhall.com/home/vhallapi/active#user_register_ y 1x * ;hie<[[glfk<kd ;hiekjjngi ;hienl[[]jj=dg[c ;hieaadli]=dg[c 23

* &mgadg_afrak<[[glfk5innkiaf_<[[glfk hjjngi5innkiaf_kjjngi jl[[]jj5mgawnl[[]jj=dg[c ^adli]5mgawin@iigi]iigiaadli]=dg[c6 2x * ;hienl[[]jj=dg[c ;hieaadli]=dg[c ;i]jldk * &mgadg_glk5mgawnl[[]jj=dg[c ^adli]5mgawin@iigi]iigiaadli]=dg[c6 3x * ;i]jldk * &=JJGajGg ]Df6 4x * ;i]jldk * &INNkiaf_[lii]fk<[[glfk6 x WebApi y y http://e.vhall.com/home/vhallapi/active#user_register_ 24

y VHallChat.h 1x _chat = [[VHallChat alloc] init]; 2x _chat.delegate = self; 3x * =dg[c =dg[c =dg[c} c]p5[g] mdl]5[gfk]fk * (mgaj]fhj_5innkiaf_ej_jl[[]jj5mgawjl[[]jj^ad]5mga WIN?a[kagfip^ad]?ki]jdlkAad]>ddZ[c6 4x z{ * ]d]_k] QCddJfdaf]Nkk]Hg]d * - (void)reciveonlinemsg:(nsarray *)msgs; 5x z{ * ]d]_k] QCdd>kHg]d * - (void)recivechatmsg:(nsarray *)msgs; x WebApi y y http://e.vhall.com/home/vhallapi/active#user_register_ y 25

VHallQAndA.h 1x _QA = [[VHallQAndA alloc] init]; 2x _QA.delegate = self; 3x * =dg[c =dg[c =dg[c} c]p5[g] mdl]5[gfk]fk * (mgaj]fhj_5innkiaf_ej_jl[[]jj5mgawjl[[]jj^ad]5mga WIN?a[kagfip^ad]?ki]jdlkAad]>ddZ[c6 4x z{ * ]d]_k] QCddL<Hg]d * - (void)reciveqamsg:(nsarray *)msgs; x VHallLottery.h 1x Xdgkk]ip8UUQCddGgkk]ipddg[VafakV6 2x Xdgkk]ip)]d]_k]8j]d^6 3x * ;hieaf^g 26

c]p5lj]ixfe] c]p5hgf] =dg[c =dg[c =dg[c} c]p5[g] mdl]5[gfk]fk * (mgajlzeakggkk]ipdf^g5in?a[kagfipaf^gjl[[]jj5mgawjl[[]jj ^ad]5mgawin?a[kagfip^ad]?ki]jdlkaad]>ddz[c6 4x z{ * ]d]_k] QCddNkikGgkk]ipHg]d * (mgajkikggkk]ip5qcddnkikggkk]iphg]dej_6 5x z{ * ]d]_k] QCdd@fGgkk]ipHg]d * (mga]fggkk]ip5qcdd@fggkk]iphg]dej_6 x u+vu+v y VHallMoviePlayer.h } 1x 27

2x 3x} }~ nil~} } 28

} SDK demo } } } -(void)pptscrollnextpagechangeimagepath:(nsstring*)changeimagepath, x VHallLivePublishFilter.h( VHallLivePublish) VHallLivePublish ( CPUImage VhallFilterSDK/libImage.a) 1000k 29

1x() 2x VHallLivePublishFilter, VhallLivePublish 3x }openfilter=yes /** * setbeautifyfilterwithbilateral:brightness:saturation: VHall GPUFilterDelegate == nil * @param distancenormalizationfactor // A normalization factor for the distance between central color and sample color. * @param brightness // The brightness adjustment is in the range [0.0, 2.0] with 1.0 being no-change. * @param saturation // The saturation adjustment is in the range [0.0, 2.0] with 1.0 being no-change. * return BOOL YES NO */ 4xid <VHallLivePublishFilterDelegate> GPUFilterDelegate GPUFilterDelegate nil, nil SDK 30

x VHallComment.h _comment = [[VHallComment alloc] init]; 1x /** * * Block * Block * Block} * key:code * value:content */ - (BOOL)sendComment:(NSString *)comment success:(void(^)())success failed:(void (^)(NSDictionary* faileddata))reslutfailedcallback; 2x /** z A B commentid { * *@param limit 20 50 *@param pos 0 * Block * Block * Block} * key:code * value:content -(void)gethistorycommentpagecountlimit:(nsinteger)limit offset:((nsinteger) pos success(void(^)(nsarray *msgs))success failed:(void(^)(nsdictionary * failedata))reslutfailedcallback 31

x 1x(VHallMoviePlayerDelegate) /** * * * */ - (void)announcement:(nsstring*)content publishtime:(nsstring*)time; 2x UI x VHallSign.h zvhallsigndelegate{ 1x /** 32

* * * */ - (void)startsign; 2x /** * * * */ - (void)signremainingtime:(nstimeinterval)remainingtime; 3x /** * * * */ - (void)stopsign; 4x /** * * Block * Block * Block} * key:code * value:content * 10010 * 10011 * 10017 id * 10807 id 33

* 10813 ID * 10814 * 10815 */ -(BOOL)signSuccess:(void(^)())success failed:(void (^)(NSDictionary* faileddata))reslutfailedcallback; 5x * * (mga[f[]dna_f6 x VHallSurvey.h 1x z VhallSurveyDelegate{ * * (mgai][]am]nlim]iphj_j5in<iipej_6 34

2x ID * ;hiejlim]pdd ;hien]zdd ;hiejl[[]jj=dg[c ;hiei]jdlkaad]>ddz[c=dg[c =dg[c} c]p5[g] mdl]5[gfk]fk * (mga_]knlim]ip>gfk]fkraknlim]pd5innkiaf_jlim]pd n]zdfid5innkiaf_n]zdjl[[]jj5mgawqcddnlim]pej_jjlim]p^ad]5mga WIN?a[kagfip^ad]?ki]jdlkAad]>ddZ[c6 3x * =dg[c =dg[c =dg[c} c]p5[g] mdl]5[gfk]fk * (mgaj]fhj_5in<iipej_jl[[]jj5mgawjl[[]jj^ad]5mga WIN?a[kagfip^ad]?ki]jdlkAad]>ddZ[c6 x ** kph]]^inx@iphafk'?]ma[]ji_akagf r c?]ma[]kgikiak' c?]ma[]gfnh[]ma_k' c?]ma[]gfnh[]g]^k 35

s6 ** kph]]^inx@iphafk'qa]gm]jgdlkagf r cggnqa]gm]jgdlkagf8+'**.0--33 cb]f]idqa]gm]jgdlkagf'**1/+/3+ ccqa]gm]jgdlkagf'**41+0/+ cc?qa]gm]jgdlkagf**,-3+2-+ s6 *** kph]]^inx@iphafk'gam]nkklj r cgam]nkklj=l^^]iaf_nkik8+'** cgam]nkklj=l^^]iaf_nkgh8,'** cgam]nkkljklj>gff][knl[[]]8-'** cgam]nkkljklj>gff][k@iigi8.'** cgam]nkklj>?i>gff][knl[[]]8/'**>?i cgam]nkklj>?i>gff][k@iigi80'**>?i cgam]nkkljkie@iigi81'** cgam]nkkljm][m@iigi82'** cgam]nkkljn]f@iigi83'** cgam]nkklj?gnfdgnh]]84'** cgam]nkkljphdgnh]]8,+'** cgam]nkklji]kngicnkklj8,,'**98+7+ cgam]nkkljb]kpid@iigi8,-'** cgam]nkkljrak<fc]a_k8,.'** cgam]nkklj<lagdf^g8,/** s6 ** kph]]^inx@iphafk'gam]kdp@iigioph] r cgam]kdpb]kpid@iigi8cgam]nkkljb]kpid@iigi'**ikehpid cgam]kdpkie@iigi8cgam]nkkljkie@iigi'** cgam]kdpm][m@iigi8cgam]nkkljm][m@iigi'** cgam]kdp>?i>gff][k@iigi8cgam]nkklj>?i>gff][k@iigi'**>?i cgam]kdpejgfagied@iigi8,0**bjgf s6 **MOHKQa]n 36

kph]]^inx@iphafk'mohkhgma]n[daf_hg] r cmohkhgma]n[daf_hg]igf]'**igj[daf_ cmohkhgma]n[daf_hg]<jh][kaak'**pfa^giej[d]lfkadgf]ae]fjagf^akj cmohkhgma]n[daf_hg]<jh][kaadd'**pfa^giej[d]lfkadk]egma]^addjk] majazd]zglfj)jf]ae]fjagfepm][dahh][gfk]fkj s6 xdemo DEMO UI y } 1{ ID}Demo e.vhall.com 2{Token}Demo http://e.vhall.com/api/test verify/access-token 24 3{} 300 Kbps 4{} 5{} 352*288/640*480/960*540/1280*720 6{K } K Server } 1{ Id: Server VHALL webinar/list 2{AccessToken} Server VHALL verify/access-token y } Demo CONSTS.h y } xy } 1{}http://e.vhall.com/auth/register 2{}http://e.vhall.com/home/vhallapi/active#user_register_ 37

x K xy }http://e.vhall.com/home/vhallapi/embed a) b) 2.1 1{} y}webinar/whole-auth-url K URL 2) } http://e.vhall.com/webinar/auth/123456789 id 3{}(webinar/create webinar/update) 4{}use_global_k 0 1, K ~ 0 y 2.2 Vhall URL k 2.3 Vhall URL(auth_url) HTTP POST email k POST y k y URL(auth_url) pass, fail } multipart/form-data post y 38

2.4 Vhall URL y pass URL'' c) K,{ N?Fc l } kkh5**])mdd)[ge*n]zafi*afaklj]i*,-./01234:]ead8k]jk;mdd)[ge!fe]8m ajakgi!c8 l N?F'.fe]']ead'hjj ]ead5y]ead ]eady D?]eadD?,-./01;geaf)[ge',-./01;geaf)[ge]eady fe]5yx ypoa(3pmglid]f[g]y c} y * ;hiehie hieu; a V8D hieu; fe] V8N?F hieu; ]ead V8N?F hieu; hjj V8F *(=JJGjkikKdp5IN?a[kagfiphie6 * CGN ;hiehie hieu; a V8D hieu; fe] V8N?F hieu; ]ead V8N?F hieu; hjj V8F ;hieegma]kdp]i>gfkigdd]ihkhgma]kdp]i>gfkigdd]i *(mgajkikkdpz[c5in?a[kagfiphieegma]kdp]i5hkhgma]kdp]i>gfkigdd]i egma]kdp]i>gfkigdd]i6 39

-{QddPMGlkXlidCOOKKJNO ]eadckjnoycy PMGlkXlidhjj'^ad }eldkahik*^gie(khgjky.{qddpmgyhjj PMG"" /{ PMGF} l }F l }Fy l y 0{F F}D?xQddD?xz,42+(+,(+,{ =j]1/]opmgyf >[]?=>[]F?=>[] x d) 2.3.0 2.4.0 1) SDK uv y Ø http://e.vhall.com/home/vhallapi/authlist API/SDK y Ø y Ø y Ø IOS-SDK BundleID yz Bundle Identifier Targets General { 2) AppDelegate.m #import "VHallApi.h" 40

- (BOOL)application:(UIApplication *)application didfinishlaunchingwithoptions:(nsdictionary *)launchoptions { [VHallApi registerapp:appkey SecretKey:AppSecretKey];// } 3) VHallLivePublish.h - (void)startlive:(nsdictionary*)param;// AppKey AppSecretKey - (void)stoplive; // disconnect startlive startlive stoplive - (void)disconnect; //, app x reconnect y z} disconnect stoplive{ bitrate -> videobitrate // videobitrate 4) VHallMoviePlayer.h -(BOOL)startPlay:(NSDictionary*)param;//, AppKey AppSecretKey -(void)startplayback:(nsdictionary*)param movieplayer:(mpmovieplayercontroller *)movieplayercontroller; // AppKey AppSecretKey 41