Skip to content

wecandeo/PlayerSample_Android

Repository files navigation

Sample Player

μ„€μ •

사전에 μ‘°νšŒν•  κ°’ μ„€λͺ…

Player 곡톡

WECANDEO 톡계λ₯Ό μ‚¬μš©ν•˜κΈ° μœ„ν•΄μ„œλŠ” ν™œμ„±ν™” 된 WECANDEO 계정이 μžˆμ–΄μ•Ό ν•©λ‹ˆλ‹€. λ¨Όμ € WECANDEO ν™ˆνŽ˜μ΄μ§€ μ—μ„œ 계정을 μƒμ„±ν•˜κ³  ν”Œλžœ(Trial, Standard, Enterprise)에 κ°€μž…ν•˜μ—¬ 계정을 ν™œμ„±ν™” ν•©λ‹ˆλ‹€. ν™œμ„±ν™” 된 계정에 μ΄μš©μ€‘μΈ μƒν’ˆμ΄ VideoPack인 경우 VOD Playerλ₯Ό, LivePack인 경우 Live Player λ₯Ό μ‚¬μš©ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

WECANDEO APIλ₯Ό μ‚¬μš©ν•˜μ—¬ ν•„μš”ν•œ 값을 μ‘°νšŒν•©λ‹ˆλ‹€.

β€» WECANDEO APIλ₯Ό μ‚¬μš©ν•˜κΈ° μœ„ν•΄ ν•„μš”ν•œ API KeyλŠ” ν™œμ„±ν™” 된 κ³„μ •μ˜ CMSμ—μ„œ 확인 κ°€λŠ₯ν•©λ‹ˆλ‹€.[CMS > 계정관리 > 개발자 API]

β€» DRM κΈ°λŠ₯을 μ‚¬μš©ν•˜κΈ° μœ„ν•΄μ„œλŠ” μ‚¬μš© κ°€λŠ₯ν•œ ν”Œλžœ(Enterprise)에 κ°€μž…λ˜μ–΄ μžˆμ–΄μ•Ό ν•˜λ©°, κ΄€λ¦¬μžλ₯Ό 톡해 ν•΄λ‹Ή κΈ°λŠ₯이 ν™œμ„±ν™” λ˜μ–΄ μžˆμ–΄μ•Ό ν•©λ‹ˆλ‹€.

  • Live Player
    • liveKey : [CMS > 라이브 채널 > 채널 리슀트 > 채널 선택 > 배포 μ½”λ“œ] λ©”λ‰΄μ—μ„œ liveKeyλ₯Ό 확인할 수 μžˆμŠ΅λ‹ˆλ‹€.

1. 라이브러리 μΆ”κ°€

implementation 'com.google.android.exoplayer:exoplayer:2.12.1'
implementation 'com.android.volley:volley:1.1.1'
implementation 'com.google.code.gson:gson:2.8.6'
implementation files('libs/WecandeoPlaySdk.jar')

- libs 폴더에 WecandeoPlaySdk.jar 파일 μΆ”κ°€

2. AndroidManifest.xml 에 permissions μΆ”κ°€

<uses-permission android:name="android.permission.INTERNET" />

3. AndroidManifest.xml application νƒœκ·Έ μ•ˆμ— usesCleartextTraffic μ„€μ •

<application
android:usesCleartextTraffic="true">

4. - UrlInfo, RequestSingleton Class λŠ” μˆ˜μ •ν•˜μ§€ μ•Šκ³  μ‚¬μš©

VOD

Player ꡬ성 방법

  • 곡톡
    • ν•΄λ‹Ή Activity 에 Player.EventListener, SdkInterface.onSdkListener μΈν„°νŽ˜μ΄μŠ€λ₯Ό κ΅¬ν˜„ν•΄μ•Ό ν•©λ‹ˆλ‹€.
      • Activity implements Player.EventListener, SdkInterface.onSdkListener
    • onStart(), onResume(), onPause(), onStop() λ©”μ„œλ“œλ₯Ό 각 λ©”μ„œλ“œμ— 맞게 wecandeoSdk 호좜
    @Override
    public void onStart(){
        super.onStart();
        if(wecandeoSdk != null)
          wecandeoSdk.onStart();
    }
    
    • 이벀트
      • μž¬μƒ : wecandeoSdk.play()
      • μž¬μ‹œμž‘ : wecandeoSdk.retry()
      • μ •μ§€ : wecandeoSdk.stop()
      • μΌμ‹œ μ •μ§€ : wecandeoSdk.pause()
      • μ•žμœΌλ‘œ λ„˜κΈ°κΈ° : wecandeoSdk.fastForward()
      • λ’€λ‘œ λŒμ•„κ°€κΈ° : wecandeoSdk.rewind()
      • μ’…νš‘λΉ„ μ„€μ • : wecandeoSdk.setResizeMode(int position)
        • position κ°’
        • 0 (RESIZE_MODE_FIT) : μ›ν•˜λŠ” μ’…νš‘λΉ„λ₯Ό μ–»κΈ° μœ„ν•΄ λ„ˆλΉ„ λ˜λŠ” 높이λ₯Ό μ€„μž…λ‹ˆλ‹€.
        • 1 (RESIZE_MODE_FIXED_WIDTH) : λ„ˆλΉ„λŠ” κ³ μ •λ˜κ³  λ†’μ΄λŠ” μ›ν•˜λŠ” μ’…νš‘λΉ„λ₯Ό μ–»κΈ° μœ„ν•΄ 증가 λ˜λŠ” κ°μ†Œν•©λ‹ˆλ‹€.
        • 2 (RESIZE_MODE_FIXED_HEIGHT) : λ†’μ΄λŠ” κ³ μ •λ˜κ³  λ„ˆλΉ„λŠ” μ’…νš‘λΉ„λ₯Ό μ–»κΈ° μœ„ν•΄ λŠ˜λ¦¬κ±°λ‚˜ μ€„μž…λ‹ˆλ‹€.
        • 3 (RESIZE_MODE_FILL) : μ§€μ •λœ μ’…νš‘λΉ„κ°€ λ¬΄μ‹œ λ©λ‹ˆλ‹€.
        • 4 (RESIZE_MODE_ZOOM) : μ›ν•˜λŠ” μ’…νš‘λΉ„λ₯Ό μ–»κΈ° μœ„ν•΄ λ„ˆλΉ„ λ˜λŠ” 높이λ₯Ό λŠ˜λ¦½λ‹ˆλ‹€.
  • DRM
    • λ°œκΈ‰λœ videoId, videoKey, gId, scretKey, packageId λ₯Ό 톡해 Player ꡬ성
 wecandeoSdk = new WecandeoSdk(this);
 wecandeoSdk.setSdkListener(this);
 wecandeoSdk.addPlayerListener(this);
 wecandeoVideo = new WecandeoVideo();
 wecandeoVideo.setDrm(true);
 wecandeoVideo.setVideoKey("videoKey");
 wecandeoVideo.setgId("gid");
 wecandeoVideo.setPackageId("packageId");
 wecandeoVideo.setVideoId("videoId");
 wecandeoVideo.setSecretKey("secretKey");
 wecandeoSdk.setWecandeoVideo(wecandeoVideo);
 wecandeoSdk.setPlayerView(playerView);
 wecandeoSdk.setUseController(false);
  • Non DRM
    • λ°œκΈ‰λœ videoKey 둜 μ˜μƒ 상세정보 쑰회λ₯Ό ν•˜μ—¬ λ‚˜μ˜¨ videoUrl 값을 μ΄μš©ν•˜μ—¬ Player ꡬ성
  wecandeoSdk = new WecandeoSdk(this);
  wecandeoSdk.setSdkListener(this);
  wecandeoSdk.addPlayerListener(this);
  wecandeoVideo = new WecandeoVideo();
  wecandeoVideo.setDrm(false);
  wecandeoVideo.setVideoKey("videoUrl");
  wecandeoSdk.setWecandeoVideo(wecandeoVideo);
  wecandeoSdk.setPlayerView(playerView);
  wecandeoSdk.setUseController(false);
  wecandeoSdk.onStart();

LIVE

Player ꡬ성 방법

  • λ°œκΈ‰λœ liveKey 둜 μ˜μƒ 상세정보 쑰회λ₯Ό ν•˜μ—¬ λ‚˜μ˜¨ videoUrl 값을 μ΄μš©ν•˜μ—¬ Player ꡬ성
  wecandeoSdk = new WecandeoSdk(this);
  wecandeoSdk.setSdkListener(this);
  wecandeoSdk.addPlayerListener(this);
  wecandeoVideo = new WecandeoVideo();
  wecandeoVideo.setDrm(false);
  wecandeoVideo.setVideoKey("videoUrl");
  wecandeoSdk.setWecandeoVideo(wecandeoVideo);
  wecandeoSdk.setPlayerView(playerView);
  wecandeoSdk.setUseController(false);
  wecandeoSdk.onStart();
  • 곡톡
    • ν•΄λ‹Ή Activity 에 Player.EventListener, SdkInterface.onSdkListener μΈν„°νŽ˜μ΄μŠ€λ₯Ό κ΅¬ν˜„ν•΄μ•Ό ν•©λ‹ˆλ‹€.
      • Activity implements Player.EventListener, SdkInterface.onSdkListener
    • onStart(), onResume(), onPause(), onStop() λ©”μ„œλ“œλ₯Ό 각 λ©”μ„œλ“œμ— 맞게 wecandeoSdk 호좜
    @Override
    public void onStart(){
        super.onStart();
        if(wecandeoSdk != null)
          wecandeoSdk.onStart();
    }
    
    • 이벀트
      • μž¬μƒ : wecandeoSdk.play()
      • μ •μ§€ : wecandeoSdk.stop()

About

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

Topics

Resources

License

Stars

Watchers

Forks

Contributors

Languages