--- title: "Android 환경" slug: "vpe-android" updated: 2026-09-17T09:22:05Z published: 2026-09-17T09:22:05Z canonical: "guide.ncloud-docs.com/vpe-android" stale: true --- > ## Documentation Index > Fetch the complete documentation index at: https://guide.ncloud-docs.com/llms.txt > Use this file to discover all available pages before exploring further. # Android 환경 Classic/VPC環境で利用できます。 Android環境では、Android専用プレイヤー開発のための Video Player Enhancement Android SDKの使用方法とプレイヤー適用およびオプション設定方法について説明します。 参考 Android用 Video Player Enhancement SDKを使用するには Standardプランを利用する必要があり、以下の仕様が要求されます。 - 最小仕様: API 26(Oreo 8.0)以上、gradle 4.2.2以上 - 開発環境: Android Studio ## SDKのインストールと環境設定 SDKをインストールしてフレームワークを追加する方法は、次の通りです。 1. NAVERクラウドプラットフォームコンソールで、 **Menu** > **All Services** > **Media** > **Video Player Enhancement**メニューを順にクリックします。 2. **Video Player Management** メニューをクリックします。 3. プレイヤーリストから SDKをダウンロードするプレイヤーの **[SDKアドレス]** ボタンをクリックします。 4. **モバイルネイティブ SDKsダウンロード** の **[Android]** ボタンをクリックします。 - 圧縮ファイルがダウンロードされます。 1. ダウンロードした SDKファイルを `root > app > libs`のパスに追加します。 2. appの下の build.gradleファイルの dependenciesに次の項目を追加します。 ``` dependencies { ... implementation files('libs/NCPlayerSDK.aar') implementation 'com.google.code.gson:gson:2.10.1' } ``` ## プレイヤーの適用と設定 プレイヤーを適用してオプションを設定するためには、次の手順に従います。 - [1. 初期化](/docs/ja/vpe-android#1%EC%B4%88%EA%B8%B0%ED%99%94) - [2. プレイヤー設定](/docs/ja/vpe-android#2%ED%94%8C%EB%A0%88%EC%9D%B4%EC%96%B4%EC%84%A4%EC%A0%95) - [3. イベント設定](/docs/ja/vpe-android#3%EC%9D%B4%EB%B2%A4%ED%8A%B8%EC%84%A4%EC%A0%95) ### 1. 初期化 次のように NCPlayerSDKインスタンスを初期化し、Delegateを設定します。 ``` ... import com.sgrsoft.ncp_aos.* ... class MainActivity : AppCompatActivity() { ... override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) ... var delegate = PlayerDelegate() NCPlayer.delegate = delegate } } ``` ### 2. プレイヤー設定 プレイヤーを設定する方法は、次の通りです。 1. NAVERクラウドプラットフォームコンソールで、 **Menu** > **All Services** > **Media** > **Video Player Enhancement**メニューを順にクリックします。 2. **Video Player Management** メニューをクリックします。 3. 設定するプレイヤーの **[SDKアドレス]** ボタンをクリックします。 4. Player SDKアドレスのポップアップが表示されたら、 **SDKアドレス** から access_key値を確認します。 ![vpe-ios_key_ko](https://cdn.document360.io/6998976f-9d95-4df8-b847-d375892b92c2/Images/Documentation/vpe-ios_key_ja.png?sv=2026-02-06&spr=https&st=2026-10-30T22%3A48%3A01Z&se=2026-10-30T23%3A48%3A01Z&sr=c&sp=r&sig=a%2FIcUtlqrAR3uWvA5AjFUlCDsyjgJ5d21GhiXVZCBmo%3D) 5. Android Studioで NCPlayerViewを使用する UIViewを作成します。 6. プレイヤーのオプションを設定します。 ``` import com.sgrsoft.ncp_aos.* ... class MainActivity : AppCompatActivity() { ... private lateinit var webView: WebView; override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) ... webView = findViewById(R.id.webVIew) //登録済みの APPLICATION_IDを使用、コンソールに登録されたパッケージ IDのみ許可 var packageId = BuildConfig.APPLICATION_ID // licenseKey = access_key var licenseKey = "{access_key}" // 画面録画およびキャプチャ防止機能の使用有無(true: 機能制限) var isScreenCaptureDeny = false // NCPlayerViewを作成 var player = NCPlayerView() // NCPlayerViewウェブビューとの関連付け player.webView = webView NCPlayer.prefs.setString("appId",packageId) NCPlayer.prefs.setString("licenseKey",licenseKey) NCPlayer.prefs.setString("isScreenCaptureDeny", isScreenCaptureDeny.toString()) // プレイヤーオプション(コンソールで作成されたスクリプトコードを使用) val playerOptions = """ { "playlist":[ { "file":"https://CDNドメイン/example_video_01.mp4", "poster":"https://CDNドメイン/example_video_01.png", } ], "autostart":true, } """ // 実行 player.play(playerOptions,this) } } ``` - [プレイヤー設定](/docs/ja/vpe-web#%ED%94%8C%EB%A0%88%EC%9D%B4%EC%96%B4%EC%84%A4%EC%A0%95)とこのガイドのプレイヤー設定スクリプトをご参照ください。 7. 録画防止のため、次のようにコードを作成します。 ``` import com.sgrsoft.ncp_aos.* ... class MainActivity : AppCompatActivity() { ... private lateinit var webView: WebView; var player = NCPlayerView() override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) ... // 画面録画およびキャプチャ防止機能の使用有無(true: 機能制限) val isScreenCaptureDeny = false // NCPlayerに変数を登録 // ""内の string値は変更禁止 NCPlayer.prefs.setString("isScreenCaptureDeny", isScreenCaptureDeny.toString()) } } ``` 8. Picture in Picture機能を使用するため、次のようにコードを作成します。 ``` override fun onUserLeaveHint() { // 横の比率を入力したい場合 例) 16,9 // 縦の比率を入力したい場合 例) 9,16 player.enterPip(this,9,16) } ``` 9. ウェブビューを使用する場合はメモリリーク(Memory Leak)の防止のため、次のようにプレイヤー解除コードを作成します。 ``` import com.sgrsoft.ncp_aos.* ... class PlayerDelegate: NCPlayerEventInterface{ ... player.destroy() } ``` ### 3. イベント設定 Player Event APIを通じて Video Player Enhancementプレイヤーで発生するイベントバインドして活用できます。方法は次の通りです。 1. `NCPlayerNetworkStatus` メソッドを利用してデバイスのネットワーク接続状態を確認します。 ``` import com.sgrsoft.ncp_aos.* ... class PlayerDelegate: NCPlayerEventInterface{ ... override fun NCPlayerNetworkStatus(state: String) { // state: ONLINE = 異常なし(ONLINE) // state: OFFLINE = 問題発生(OFFLINEまたは通信障害発生) } } ``` 2. 設定したいイベントに応じて設定方法を確認します。 - [横向きモード有効化イベント](/docs/ja/vpe-android#%EA%B0%80%EB%A1%9C%EB%AA%A8%EB%93%9C%ED%99%9C%EC%84%B1%ED%99%94%EC%9D%B4%EB%B2%A4%ED%8A%B8) - [TimeUpdateイベント](/docs/ja/vpe-android#TimeUpdate%EC%9D%B4%EB%B2%A4%ED%8A%B8) - [PrevTrackイベント](/docs/ja/vpe-android#PrevTrack%EC%9D%B4%EB%B2%A4%ED%8A%B8) - [NextTrackイベント](/docs/ja/vpe-android#NextTrack%EC%9D%B4%EB%B2%A4%ED%8A%B8) - [コントロールバー有効化イベント](/docs/ja/vpe-android#%EC%BB%A8%ED%8A%B8%EB%A1%A4%EB%B0%94%ED%99%9C%EC%84%B1%ED%99%94%EC%9D%B4%EB%B2%A4%ED%8A%B8) - [再生イベント](/docs/ja/vpe-android#%EC%9E%AC%EC%83%9D%EC%9D%B4%EB%B2%A4%ED%8A%B8) - [一時停止イベント](/docs/ja/vpe-android#%EC%9D%BC%EC%8B%9C%EC%A0%95%EC%A7%80%EC%9D%B4%EB%B2%A4%ED%8A%B8) - [再生完了イベント](/docs/ja/vpe-android#%EC%9E%AC%EC%83%9D%EC%99%84%EB%A3%8C%EC%9D%B4%EB%B2%A4%ED%8A%B8) - [フルスクリーンイベント](/docs/ja/vpe-android#%EC%A0%84%EC%B2%B4%ED%99%94%EB%A9%B4%EC%9D%B4%EB%B2%A4%ED%8A%B8) #### 横向きモード有効化イベント デバイスを横向きに切り替える際にイベントを発生させるには、`NCPlayerIsLandscape` メソッドを利用して次のように設定します。 ``` import com.sgrsoft.ncp_aos.* ... class PlayerDelegate: NCPlayerEventInterface{ ... override fun NCPlayerIsLandscape(state: Boolean) { } } ``` #### TimeUpdateイベント 再生時間変化検知時にイベントを発生させるには、`NCPlayerOnTimeUpdate` メソッドを利用して次のように設定します。 ``` import com.sgrsoft.ncp_aos.* ... class PlayerDelegate: NCPlayerEventInterface{ ... override fun NCPlayerOnTimeUpdate(data: JSONObject?) { // data = {"sourceType":"vod","currentTime":1,"duration":7715,"percent":0.008898181834278056,"viewingTime":1} } } ``` 参考 各プロパティの詳しい説明は、[timeupdateスクリプト](/docs/ja/vpe-web#timeupdate%EC%8A%A4%ED%81%AC%EB%A6%BD%ED%8A%B8)をご参照ください。 #### PrevTrackイベント プレイリストの前の動画へ移動する際にイベントを発生させるには、`NCPlayerOnPrevTrack` メソッドを利用して次のように設定します。 ``` import com.sgrsoft.ncp_aos.* ... class PlayerDelegate: NCPlayerEventInterface{ ... override fun NCPlayerOnPrevTrack(data: JSONObject?) { // {"file":"","poster":"","description":{"title":"title","created_at":"","profile_name":"string","profile_image":"string"}} } } ``` 参考 各プロパティの詳しい説明は、[prevTrackスクリプト](/docs/ja/vpe-web#prevTrack%EC%8A%A4%ED%81%AC%EB%A6%BD%ED%8A%B8)をご参照ください。 #### NextTrackイベント プレイリストの次の動画へ移動する際にイベントを発生させるには、`NCPlayerOnNextTrack` メソッドを利用して次のように設定します。 ``` import com.sgrsoft.ncp_aos.* ... class PlayerDelegate: NCPlayerEventInterface{ ... override fun NCPlayerOnNextTrack(data: JSONObject?) { // {"file":"","poster":"","description":{"title":"title","created_at":"","profile_name":"string","profile_image":"string"}} } } ``` 参考 各プロパティの詳しい説明は、[nextTrackスクリプト](/docs/ja/vpe-web#nextTrack%EC%8A%A4%ED%81%AC%EB%A6%BD%ED%8A%B8)をご参照ください。 #### コントロールバー有効化イベント プレイヤーでコントロールバーを有効/無効にする際にイベントを発生させるには、`NCPlayerOnControlbarActive` メソッドを利用して次のように設定します。 ``` import com.sgrsoft.ncp_aos.* ... class PlayerDelegate: NCPlayerEventInterface{ ... override fun NCPlayerOnControlbarActive(active: JSONObject?) { // active: true, false } } ``` #### 再生イベント プレイヤーで動画を再生する際にイベントを発生させるには、`NCPlayerOnPlay` メソッドを利用して次のように設定します。 ``` import com.sgrsoft.ncp_aos.* ... class PlayerDelegate: NCPlayerEventInterface{ ... override fun NCPlayerOnPlay() { } } ``` #### 一時停止イベント プレイヤーで動画を一時停止する際にイベントを発生させるには、`NCPlayerOnPause` メソッドを利用して次のように設定します。 ``` import com.sgrsoft.ncp_aos.* ... class PlayerDelegate: NCPlayerEventInterface{ ... override fun NCPlayerOnPause() { } } ``` #### 再生完了イベント プレイヤーで動画再生が完了する際にイベントを発生させるには、`NCPlayerOnEnd` メソッドを利用して次のように設定します。 ``` import com.sgrsoft.ncp_aos.* ... class PlayerDelegate: NCPlayerEventInterface{ ... override fun NCPlayerOnEnd() { } } ``` #### フルスクリーンイベント フルスクリーンへの切り替え時にイベントを発生させることができ、デバイス回転時にフルスクリーンに自動切り替えするように設定できます。 **フルスクリーンイベント** プレイヤーをフルスクリーンに切り替える際にイベントを発生させるには、`NCPlayerOnFullscreen` メソッドを利用して次のように設定します。 ``` import com.sgrsoft.ncp_aos.* ... class PlayerDelegate: NCPlayerEventInterface{ ... val delegate = PlayerDelegate() NCPlayer.delegate = delegate override fun NCPlayerOnFullscreenState(state: Boolean) { // fullscreen true / false } // フルスクリーンが解除した時に発生するイベント override fun NCPlayerOnFullscreenOff() { } // フルスクリーンに切り替わった時に発生するイベント override fun NCPlayerOnFullscreenOn() { } } ``` **フルスクリーンに自動切り替え** デバイス回転時にフルスクリーンに自動切り替えする機能を提供するには、次のように設定します。 ``` override fun onConfigurationChanged(newConfig: Configuration) { super.onConfigurationChanged(newConfig) if (newConfig.orientation == Configuration.ORIENTATION_PORTRAIT) { NCPlayer.delegate?.NCPlayerIsLandscape(false) player.fullscreenOff() } else if (newConfig.orientation == Configuration.ORIENTATION_LANDSCAPE) { NCPlayer.delegate?.NCPlayerIsLandscape(true) player.fullscreenOn() } } ```