概要
Unityで動画再生したい
そこで、最初はUnity標準のMovieTextureだったかを使った。
シークできないことや、再生の動作が重いなどの問題多数出てきた。
そこで他の方法で動画再生させようとした話である。
解決方法
AV Pro なるAssetがある。
https://www.assetstore.unity3d.com/jp/#!/content/56355
これのお試し版があったので、それで実験してみた。
実験環境
詳細 | |
---|---|
OS | Mac OSX 10.11 |
Unity | 5.4.2f2 |
実験結果
- シーク移動
- 絶対アドレス指定で、動画再生
- 再生開始時の安定した動作
ソースコード
source
using UnityEngine;
using System.Collections;
using RenderHeads.Media.AVProVideo;
// Media Player(Script)に、このクラスをAdd Componentしてください。
//
//
//
public class MyMediaPlayer : MonoBehaviour {
// Use this for initialization
void Start () {
}
void Update () {
if (Input.GetKeyUp("a")){
//シーク移動
MediaPlayer mediaplayer = this.gameObject.GetComponent<MediaPlayer> ();//自分のコンポーネントから
IMediaControl control = mediaplayer.Control;
control.Seek (200000.0f);//単位は、ミリセカンド(1000分の1秒)
Debug.Log ("A Key UP");
}
if (Input.GetKeyUp("n")){
MediaPlayer mediaplayer = this.gameObject.GetComponent<MediaPlayer> ();
IMediaControl control = mediaplayer.Control;
control.Stop ();
control.CloseVideo ();
control.OpenVideoFromFile ("/Users/”ユーザ名”/Movies/test/test2.mp4",0);//絶対アドレスで再生する動画指定
//control.Play (); //ここで再生しても再生しない。しばらくたったら、再生実行すると再生される。
Debug.Log ("N Key Down");
}
}
}
シーク移動
シーク移動して再生継続
再生開始時の安定した動作
特に何か変更していないが、AV Proにしてからは特に問題になっていない