Skip to content

wecandeo/PlayerSample_iOS

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

WECANDEO Player

๊ณตํ†ต

  • ํ•ด๋‹น SDK๋Š” iOS 8.0 ์ด์ƒ๋ถ€ํ„ฐ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค.
  • ํ•ด๋‹น SDK๋Š” Simulator์—์„œ๋Š” ์ง€์›ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. Device๋ฅผ ํ†ตํ•ด ์‚ฌ์šฉํ•ด ์ฃผ์„ธ์š”.

์‚ฌ์ „์— ์กฐํšŒํ•  ๊ฐ’

  • WECANDEO Player๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ํ™œ์„ฑํ™” ๋œ WECANDEO ๊ณ„์ •์ด ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
    ๋จผ์ € WECANDEO ํ™ˆํŽ˜์ด์ง€์—์„œ ๊ณ„์ •์„ ์ƒ์„ฑํ•˜๊ณ  ํ”Œ๋žœ(Trial, Standard, Enterprise)์— ๊ฐ€์ž…ํ•˜์—ฌ ๊ณ„์ •์„ ํ™œ์„ฑํ™” ํ•ฉ๋‹ˆ๋‹ค.
    ํ™œ์„ฑํ™” ๋œ ๊ณ„์ •์— ์ด์šฉ์ค‘์ธ ์ƒํ’ˆ์ด VideoPack์ธ ๊ฒฝ์šฐ VOD Player๋ฅผ, LivePack์ธ ๊ฒฝ์šฐ Live Player๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  • WECANDEO API๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํ•„์š”ํ•œ ๊ฐ’์„ ์กฐํšŒํ•ฉ๋‹ˆ๋‹ค.

    • WECANDEO API๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•ด ํ•„์š”ํ•œ API Key๋Š” ํ™œ์„ฑํ™” ๋œ ๊ณ„์ •์˜ CMS์—์„œ ํ™•์ธ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค. [ CMS > ๊ณ„์ •๊ด€๋ฆฌ > ๊ฐœ๋ฐœ์ž API ]
  • VOD Player

    • videoKey: ๋™์˜์ƒ ๋ฐฐํฌ ์ฝ”๋“œ ์กฐํšŒ API๋ฅผ ํ˜ธ์ถœํ•˜๋ฉด videoKey๋ฅผ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
    • DRM ์žฌ์ƒ์„ ์œ„ํ•œ ๊ฐ’
      • gid : [ CMS > ๋ถ€๊ฐ€์„œ๋น„์Šค > Wecandeo DRM ] ๋ฉ”๋‰ด์—์„œ gid๋ฅผ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
      • secretKey : [ CMS > ๋ถ€๊ฐ€์„œ๋น„์Šค > Wecandeo DRM ] ๋ฉ”๋‰ด์—์„œ secretKey๋ฅผ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
      • packageId : ๋ฐฐํฌ ํŒจํ‚ค์ง€ ๋ชฉ๋ก ์กฐํšŒ API๋ฅผ ํ˜ธ์ถœํ•˜๋ฉด packageId๋ฅผ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
      • videoId : ๋™์˜์ƒ ๋ชฉ๋ก - ๋ฐฐํฌ ํŒจํ‚ค์ง€๋ณ„ ์กฐํšŒ API๋ฅผ ํ˜ธ์ถœํ•˜๋ฉด videoId๋ฅผ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
      • client : ์ถ”๊ฐ€์ ์ธ ์‚ฌ์šฉ์ž ์•”ํ˜ธํ™”ํ‚ค, ์‚ฌ์šฉ์ž๊ฐ€ ์ž„์˜์˜ ๊ฐ’์œผ๋กœ ์„ค์ •
    • DRM ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ํ”Œ๋žœ(Enterprise)์— ๊ฐ€์ž…๋˜์–ด ์žˆ์–ด์•ผ ํ•˜๋ฉฐ,
      ๊ด€๋ฆฌ์ž๋ฅผ ํ†ตํ•ด ํ•ด๋‹น ๊ธฐ๋Šฅ์ด ํ™œ์„ฑํ™” ๋˜์–ด ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
  • Live Player

    • liveKey : [ CMS > ๋ผ์ด๋ธŒ ์ฑ„๋„ > ์ฑ„๋„ ๋ฆฌ์ŠคํŠธ > ์ฑ„๋„ ์„ ํƒ > ๋ฐฐํฌ ์ฝ”๋“œ ] ๋ฉ”๋‰ด์—์„œ liveKey๋ฅผ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

Embed Framework

  • Xcode์˜ [Framework... ] ํ•ญ๋ชฉ์— โ€œWecandeoSDK.frameworkโ€๋ฅผ ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค.
    • โ€œWecandeoSDK.framework>Frameworksโ€ ๊ฒฝ๋กœ์—์„œ ์•„๋ž˜์˜ framework ์ถ”๊ฐ€
      • โ€œwidevine_cdm_sdk_dev.frameworkโ€
      • โ€œwidevine_cdm_sdk_insecure_dev.frameworkโ€
      • โ€œwidevine_cdm_sdk_release.frameworkโ€

        embedFramework

ATS

  • iOS9 ์ด์ƒ์—์„œ๋Š” ATS(App Transport Security) ๊ธฐ๋Šฅ์ด ์ œ๊ณต๋ฉ๋‹ˆ๋‹ค.
    ATS ๊ธฐ๋Šฅ ํ™œ์„ฑํ™” ์‹œ, HTTP ๋ฐฉ์‹์ด ์ œํ•œ๋˜์–ด ์ •์ƒ์ ์œผ๋กœ ์˜์ƒ์ด ์žฌ์ƒ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
    ๋”ฐ๋ผ์„œ Info.plist ํŒŒ์ผ์— ์•„๋ž˜์˜ ํ•ญ๋ชฉ์„ ์ถ”๊ฐ€ ์ ์šฉํ•˜์—ฌ ์‚ฌ์šฉ ๋ฐ”๋ž๋‹ˆ๋‹ค.

    ATS

Bitcode

  • iOS9 ์ด์ƒ์—์„œ๋Š” LLVM ์ปดํŒŒ์ผ๋Ÿฌ์—์„œ Bitcode๋ฅผ ์ƒ์„ฑ์„ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค.
    ํ•ด๋‹น SDK๋Š” Bitcode๋ฅผ ์ง€์›ํ•˜์ง€ ์•Š์œผ๋ฉฐ, Bitcode๋ฅผ ํ™œ์„ฑํ™” ์‹œ ์˜์ƒ์ด ์ •์ƒ์ ์œผ๋กœ ์žฌ์ƒ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
    ๋”ฐ๋ผ์„œ Target > Build Setting > Build Options > Enable Bitcode๋ฅผ โ€œNOโ€๋กœ ์„ค์ •ํ•˜์—ฌ ์‚ฌ์šฉ ๋ฐ”๋ž๋‹ˆ๋‹ค.

    Bitcode

WCPlayer

  • (PlayerController *)setPlayerControlWithGid:(NSString *)gId packageId:(NSString *)pId videoId:(NSString *)vId videoKey:(NSString *)videoKey hMac:(NSString *)hMac
    • DRM Player ๊ฐ์ฒด ์ƒ์„ฑ
      • gId : ๋ฐœ๊ธ‰๋ฐ›์€ gid ๊ฐ’
      • pId : ๋ฐœ๊ธ‰๋ฐ›์€ package id ๊ฐ’
      • vId : ๋ฐœ๊ธ‰๋ฐ›์€ video Id ๊ฐ’
      • videoKey : ๋ฐœ๊ธ‰๋ฐ›์€ video Key ๊ฐ’
      • hMac : ์ƒ์„ฑ๋œ HMAC ๊ฐ’
  • (PlayerController *)setPlayerControl:(NSString *) videoUrl
    • Non DRM Player ๊ฐ์ฒด ์ƒ์„ฑ
      • videoUrl : ์˜์ƒ ์žฌ์ƒ URL
  • (BOOL)isPlaying
    • ์žฌ์ƒ์—ฌ๋ถ€
  • (void)play
    • ์žฌ์ƒ
  • (void)pause
    • ์ผ์‹œ์ •์ง€
  • (void)stop
    • ์ •์ง€
  • (CMTime)duration
    • ์ „์ฒด์‹œ๊ฐ„ ํ™•์ธ
  • (CMTime)currentTime
    • ํ˜„์žฌ์‹œ๊ฐ„ ํ™•์ธ
  • (void)moveSeek:(Float64)sec completionHandler:(void (^)(BOOL) finished)
    • sec์ดˆ๋กœ ์ด๋™
  • (void)backwawrd:(CGFloat)sec
    • sec์ดˆ ๋’ค๋กœ ์ด๋™
  • (void)forwawrd:(CGFloat)sec
    • sec์ดˆ ์•ž์œผ๋กœ ์ด๋™
  • (BOOL)isMute
    • ์Œ์†Œ๊ฑฐ ์—ฌ๋ถ€ ํ™•์ธ
  • (void)mute
    • ์Œ์†Œ๊ฑฐ
  • (void)unMute
    • ์Œ์†Œ๊ฑฐ ํ•ด์ œ
  • (CGFloat)getVolume
    • ์Œ๋Ÿ‰๊ฐ’
  • (void)setVolume:(CGFloat)volume
    • ์Œ๋Ÿ‰์กฐ์ ˆ
  • (void)setVideoGravity:(AVLayerVideoGravity)gravity
    • gravity ์„ค์ •
  • (AVLayerVideoGravity)getVideoGravity
    • ์„ค์ •๋œ gravity ์กฐํšŒ

WCPlayerDelegate

  • (void)didPlayerItemStatusReadyToPlay
    • ์žฌ์ƒ์ค€๋น„ ์™„๋ฃŒ
  • (void)playerTimeObserver:(CMTime)time
    • ์žฌ์ƒ ์ค‘ 1์ดˆ๊ฐ„๊ฒฉ์œผ๋กœ ํ˜ธ์ถœ
  • (void)didPlayerItemStatusCompleted
    • ์žฌ์ƒ ์™„๋ฃŒ

WCScretKey

  • (NSString *)hmacWithGid:(NSString *)gid scretKey:(NSString *)scretKey client:(NSString *)client
    • hmac ์กฐํšŒ
      • gid : ๋ฐœ๊ธ‰๋ฐ›์€ gid๊ฐ’
      • scretKey : ๋ฐœ๊ธ‰๋ฐ›์€ SecretKey(HMAC) ๊ฐ’
      • client : ํšŒ์‚ฌ๋„๋ฉ”์ธ

About

Player project for iOS to play video or broadcast using the Wecandeo Online Video Platform (OVP).

Topics

Resources

License

Stars

Watchers

Forks

Contributors