テンセントクラウドのLVBサービスを使ってゲーム配信してみる

## Tencent Cloudのご紹介
- Tencent CloudにはIaaS、Paas、SaaSに別れて、プロダクト数は２００以上
- アカウントは下記２種類
  - [中国サイト](https://cloud.tencent.com/)のアカウント：中国法人向け
  - [国際サイト](https://intl.cloud.tencent.com/)のアカウント：グローバル向け

## [LVB](https://intl.cloud.tencent.com/jp/product/LVB?lang=jp&pg=)の概要
Live Video Broadcasting（LVB）はTencentの長年に渡るオーディオとビデオ技術プラットフォーム、およびグロバール・大規模な加速ノードとトップのオーディオとビデオ AI 技術により、開発者にプロフェッショナル、安定なライブブロードキャスト プッシュ、トランスコーディング、配信および再生サービスを提供し、低ディレー、超高画質、大規模な並列処理アクセス量のニーズを全面的に満たします。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/633185/da4a13c6-1225-fb04-27ca-de1f88241d43.png)


## 早速、ゲーム配信を使ってみよう
これから以下の手順でゲーム配信アプリの構築を説明させていただきます。

- Licenseの取得
- コンソールでアプリを作成
- Licenseの内容をMLVBSDKに設定
- ライブのドメインの追加とCNAMEの設定

### 1. LVB Licenseの取得
[LVB](https://intl.cloud.tencent.com/jp/product/LVB)をアクセスして、LVBサービスを有効しておく。
以下の情報を事前に用意して、Tencent Cloudの営業担当にLVB License取得の趣旨を伝えれば、Licenseの発行の手続きしてもらいます。

- Androidの場合：Packagename；iOSの場合：bundled
- APP Name（アプリの名前）
- 会社の営業許可証

その後、Tencent Cloudの営業担当からLicense情報(LICENCE_URLとLICENCE_KEY)の連絡が来ると思います。
### 2. コンソールでアプリを作成
[IM](https://intl.cloud.tencent.com/product/im)をアクセスして、IMのサービスを有効しておく。そして、IMコンソールでIMアプリを作成します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/633185/2aa0386d-992a-ced0-f176-7ad9c4b0e7a3.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/633185/f8a67d4a-8117-c5c3-5879-974e245f3143.png)
アプリの情報を確認します。秘密鍵はクラウドに認証するためのものです。*SDKAppID*と*秘密鍵*をメモして、後にSDKに設定する時に使います。
<img width="794" alt="image.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/633185/479fa20d-ad8e-fd30-6638-735e31d3e01d.png">

### 3.Licenseの内容をMLVBSDKに設定
[ここ](https://github.com/tencentyun/MLVBSDK)からMLVBSDKをダウンロードします。
##### 3.1 Android MLVBSDKを設定 
`/MLVBSDK/Android/XiaoZhiBo`にあるプロジュエクトを開きます。そして、`MLVBSDK/Android/XiaoZhiBo/app/src/main/com.tencent.qcloud.xiaozhibo/com/tencent/qcloud/xiaozhibo/TCGlobalConfig.java`の該当箇所に`1.LVB Licensを取得`でもらった`LICENCE_URL`と`LICENCE_KEY`を設定します。
また、`2. コンソールでアプリを作成`で取得した`SDKAPPID`と`秘密鍵`をソースコードに設定します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/633185/3bae12d6-f9f6-ce7b-e710-520e0f2a340c.png)

##### 3.2 iOS MLVBSDKを設定 
`MLVBSDK/iOS/XiaoZhiBo`にあるプロジュエクトを開きます。そして、
`1.LVB Licensを取得`でもらった`LICENCE_URL`と`LICENCE_KEY`と
`2. コンソールでアプリを作成`で取得した`SDKAPPID`と`秘密鍵`を`TCGlobalConfig.h`に設定します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/633185/387741a4-2ec3-6840-a377-7896c85110d2.png)

### 4.ライブのドメインの追加とCNAMEの設定
ここまでは半分以上完了しました。ライブ配信を行うには二つのドメインが必要です。

- Push Domain:ライブストリーミングをクラウドに送る時に使うもの
- Playback Domain:ライブ映像をCDNから視聴する時に使うもの

LVBサービスを有効の時に、Push Domainが自動的に生成されました。
よって、追加する必要のはPlayback Domainです。

##### 4.1 Playback Domainの追加
[LVB Console ](https://console.cloud.tencent.com/live)にアクセスして、「Add Domain Name」をクリックしてください。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/633185/e0479882-c691-0517-5af9-738435909b1f.png)

下記の画面を記入すること。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/633185/b7ae073f-51e6-631e-fc54-923fbb4f0765.png)
※Acceleration Regionの選択：中国国内向けライブ配信でなければ、ICPのドメインでなくOKです。なので、Outside Mainland Chainaの選択がおすすめです。
##### 4.2 CNAMEの配置
[Domain Management](https://console.cloud.tencent.com/live/domainmanage)にアクセスして、



### 5.アプリをビルドして、ライブを行う
- iOSの場合、必要な外部ライブラリをインストール。詳細は[CocoaPodsで外部のライブラリの導入方法](https://qiita.com/hiSirius/items/dab553b5fc356091e535)に参考ください。
Androidの場合はそのままビルドして、実機で動けます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/633185/79acae89-363d-c501-d2da-2a2530a81518.png)

### よくある問題
- Q