--- title: "Android向けプレイヤー適用" slug: "vpe-example-android" updated: 2026-09-17T09:22:05Z published: 2026-09-17T09:22:05Z canonical: "guide.ncloud-docs.com/vpe-example-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用プレイヤーの適用では、Video Player Enhancement Android SDKを活用して Android用 Nativeプレイヤーを適用して設定するためのユースケースを紹介します。 参考 Android SDKのユースケースを実行するには Standardプランを利用する必要があり、以下の環境が要求されます。 - Android Studio - 外部との通信が可能な環境 ## プレイヤー適用 プレイヤーを適用する方法は、次の通りです。 1. Android Studioを実行します。 2. AndroidManifest.xmlに以下のコードを追加します。 ``` ``` 3. タブメニューをクリックして **[Project]** タブに変更し、libsにファイルを追加します。 例) ncplayerNativeSdkAosbeta ![vpe-example-android_file](https://cdn.document360.io/6998976f-9d95-4df8-b847-d375892b92c2/Images/Documentation/vpe-example-android_file.png?sv=2026-02-06&spr=https&st=2026-10-30T22%3A48%3A00Z&se=2026-10-30T23%3A48%3A00Z&sr=c&sp=r&sig=dm84DMKte0ekQRKFIsZjueqKkWAq3%2BqxOhbU66t4AG0%3D) 4. appレベルの build.gradleファイルを開き、libsに追加したファイルへの依存関係を宣言した後、syncを実行します。 ``` implementation files('libs/ncplayerNativeSdkAosbeta.aar') implementation 'com.google.code.gson:gson:2.10.1' ``` ![vpe-example-android_demo](https://cdn.document360.io/6998976f-9d95-4df8-b847-d375892b92c2/Images/Documentation/vpe-example-android_demo.png?sv=2026-02-06&spr=https&st=2026-10-30T22%3A48%3A00Z&se=2026-10-30T23%3A48%3A00Z&sr=c&sp=r&sig=dm84DMKte0ekQRKFIsZjueqKkWAq3%2BqxOhbU66t4AG0%3D) ## プレイヤー設定 プレイヤーを設定する方法は、次の通りです。 1. 以下のコードを適用してメソッドを呼び出します。 ``` 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) // BuildConfig.APPLICATION_IDを appIdに保存 // demo実行用の packageIdを利用、後に実際の packageIdとの関連付けが必要 var packageId = "com.sgrsoft.vpe.NCPlayerDemo" // 登録済みの APPLICATION_IDを使用 var licenseKey = "2c58aba24474208958ea3e50c4bee263" // ライセンスキーを送信するために保存 // NCPlayerVIewを作成 var player = NCPlayerView() // NCPlayerViewウェブビューとの関連付け player.webView = webView NCPlayer.prefs.setString("appId",packageId) NCPlayer.prefs.setString("licenseKey",licenseKey) val playerOptions = """ { "playlist":[ { "file":"https://pdeubxscnimo10174288.cdn.ntruss.com/hls/uqyCPUeJ1Ne8ml9OtPsizg__/shorts24/j5IXBfIJ83893893_shorts,1080,720,480,p.mp4.smil/master.m3u8", "poster":"https://nnbkegvqsbcu5297614.cdn.ntruss.com/profile/202211/083fff831d8904cd9d9c180e5c10be0b.png", "description":{ "title":"NAVERクラウドテスト動画1111", "created_at":"2022.07.13111", "profile_name":"NAVERクラウド", "profile_image":"https://nnbkegvqsbcu5297614.cdn.ntruss.com/profile/202208/d127c8db642716d84b3201f1d152e52a.png" }, }, { "file":"https://pdeubxscnimo10174288.cdn.ntruss.com/hls/uqyCPUeJ1Ne8ml9OtPsizg__/shorts24/j5IXBfIJ83893893_shorts,1080,720,480,p.mp4.smil/master.m3u8", "poster":"https://nnbkegvqsbcu5297614.cdn.ntruss.com/profile/202211/083fff831d8904cd9d9c180e5c10be0b.png", "description":{ "title":"NAVERクラウドテスト動画1111", "created_at":"2022.07.13111", "profile_name":"NAVERクラウド", "profile_image":"https://nnbkegvqsbcu5297614.cdn.ntruss.com/profile/202208/d127c8db642716d84b3201f1d152e52a.png" }, }, { "file":"https://pdeubxscnimo10174288.cdn.ntruss.com/hls/uqyCPUeJ1Ne8ml9OtPsizg__/shorts24/j5IXBfIJ83893893_shorts,1080,720,480,p.mp4.smil/master.m3u8", "poster":"https://nnbkegvqsbcu5297614.cdn.ntruss.com/profile/202211/083fff831d8904cd9d9c180e5c10be0b.png", "description":{ "title":"NAVERクラウドテスト動画1111", "created_at":"2022.07.13111", "profile_name":"NAVERクラウド", "profile_image":"https://nnbkegvqsbcu5297614.cdn.ntruss.com/profile/202208/d127c8db642716d84b3201f1d152e52a.png" }, } ], "autostart":true, "muted":true, "keyboardShortcut":true, "controls":true, "ui":"pc", "controlBtn":{ "play":true, "fullscreen":true, "volume":true, "times":true, "pictureInPicture":true, "setting":true, }, "progressBarColor":"#ff0000", "controlActiveTime":3000, "startMutedInfoNotVisible":false, "aspectRatio":"16/9", "objectFit":"contain", "playRateSetting":[0.5,0.75,1,1.5,2], "seekingPreview":true, "autoPause":false, "repeat":false, "touchGestures":true, "descriptionNotVisible":false, } """ player.play( playerOptions,this ) } } ``` 2. 以下のコードを適用して NCPlayerEventInterfaceを継承する Classを作成します。 ``` class PlayerDelegate: NCPlayerEventInterface{} ``` 3. 以下のコードを適用して `onCreated`に delegateを設定します。 ``` override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) var delegate = PlayerDelegate() NCPlayer.delegate = delegate } // 縦横の確認 override fun onConfigurationChanged(newConfig: Configuration) { super.onConfigurationChanged(newConfig) if (newConfig.orientation == Configuration.ORIENTATION_PORTRAIT) { NCPlayer.delegate?.NCPlayerIsLandscape(false) } else if (newConfig.orientation == Configuration.ORIENTATION_LANDSCAPE) { NCPlayer.delegate?.NCPlayerIsLandscape(true) } } class PlayerDelegate: NCPlayerEventInterface{ var TAG:String = "PlayerDelegate" // コントロールバーの有効化・無効化の確認 override fun NCPlayerOnControlbarActive(active: JSONObject?) { Log.d(TAG, "NCPlayerOnControlbarActive: $active") } // 再生が最後まで完了したときに発生するイベント override fun NCPlayerOnEnd() { Log.d(TAG, "NCPlayerOnEnd: ") } // フルスクリーン状態の有無 override fun NCPlayerOnFullscreenState(state: Boolean) { Log.d(TAG, "NCPlayerOnFullscreenState: ") } // 次の動画へ進むときに発生するイベント override fun NCPlayerOnNextTrack(data: JSONObject?) { Log.d(TAG, "NCPlayerOnNextTrack: $data") } // 動画が一時停止したときに発生するイベント override fun NCPlayerOnPause() { Log.d("TAG", "NCPlayerOnPause: ") } // 動画再生リクエストに成功したときに発生するイベント override fun NCPlayerOnPlay() { Log.d("TAG", "NCPlayerOnPlay: ") } // 前の動画へ戻るときに発生するイベント override fun NCPlayerOnPrevTrack(data: JSONObject?) { Log.d(TAG, "NCPlayerOnPrevTrack: $data") } // 現在の再生時間が変更されるときに発生するイベント override fun NCPlayerOnTimeUpdate(data: JSONObject?) { Log.d(TAG, "NCPlayerOnTimeUpdate: $data") } // 縦横の確認 override fun NCPlayerIsLandscape(state: Boolean) { Log.d(TAG, "NCPlayerIsLandscape: $state") } } ```