UnityでAndroidアプリに動画再生と視聴時間記録機能を実装する方法

Android開発

Unityを使ってAndroidアプリを開発する際、動画の再生機能や視聴時間の記録機能を実装したいと考えている方向けに、実装方法を解説します。動画をサーバーから読み込んで再生する機能と、視聴時間を記録する方法について具体的な手順とツールを紹介します。

1. サーバーから動画を読み込んで再生する方法

UnityでAndroidアプリにおいて、サーバーから動画をストリーミングで再生するためには、Unityの「VideoPlayer」コンポーネントを使用します。このコンポーネントを使うことで、外部URLから直接動画を再生することができます。

例えば、以下のようにVideoPlayerを設定して、動画をURLから読み込むことができます。

using UnityEngine;
using UnityEngine.UI;
using UnityEngine.Video;

public class VideoLoader : MonoBehaviour {
    public VideoPlayer videoPlayer;
    public string videoURL = "https://yourserver.com/video.mp4";

    void Start() {
        videoPlayer.url = videoURL;
        videoPlayer.Play();
    }
}

これで、指定したURLの動画が再生されます。動画の管理はサーバー側で行い、Unityアプリ側ではURLを指定して再生を行います。

2. 動画の視聴時間を記録する方法

動画の視聴時間を記録するには、動画が再生された時間を追跡する必要があります。これを行うには、VideoPlayerコンポーネントの再生時間を取得して、サーバーまたはローカルに記録する方法が一般的です。

以下のコード例では、動画が再生されている時間を追跡し、視聴が完了した際にその時間を表示する方法を示しています。

using UnityEngine;
using UnityEngine.Video;

public class VideoTimeTracker : MonoBehaviour {
    public VideoPlayer videoPlayer;
    private float startTime;

    void Start() {
        startTime = (float)videoPlayer.time;
        videoPlayer.loopPointReached += EndReached;
    }

    void Update() {
        float currentTime = (float)videoPlayer.time - startTime;
        Debug.Log("視聴時間: " + currentTime + "秒");
    }

    void EndReached(VideoPlayer vp) {
        Debug.Log("視聴終了: " + (float)videoPlayer.time + "秒");
    }
}

これで、動画の再生時間をリアルタイムで記録することができます。視聴時間をサーバーに送信する場合は、この値をネットワーク経由で送信する処理を追加すれば、視聴履歴を保存することができます。

3. サーバー側の管理方法

動画の管理をサーバー側で行う場合、動画ファイルの管理、ユーザーごとの視聴履歴の記録などをサーバーで処理します。動画ファイルはHTTPサーバーやクラウドストレージ(例えば、Amazon S3やGoogle Cloud Storage)を使って管理することが一般的です。

視聴履歴を記録するためには、ユーザーが動画を視聴した際にその情報をサーバーに送信し、データベースに保存します。例えば、MySQLやFirebaseを使って視聴履歴を保存し、後でユーザーが視聴した動画や時間を追跡することができます。

4. まとめ

Unityを使用してAndroidアプリに動画再生と視聴時間記録機能を実装する方法を紹介しました。動画はUnityのVideoPlayerコンポーネントを使ってサーバーからストリーミング再生し、視聴時間はリアルタイムで追跡して記録することができます。サーバー側では動画の管理と視聴履歴の保存を行い、アプリ内で必要な情報を表示することが可能です。

コメント

タイトルとURLをコピーしました