http://justcode.me/unity2d/how-to-play-videos-on-unity-using-new-videoplayer/←こちらとかを参考に
##スクリプト
最低限スクリプトで必要なところだけ(基本は前回記事参考)
VideoPlayer videoPlayer;
AudioSource audioSource;
VideoClip videoClip;
videoPlayer = camera.AddComponent<VideoPlayer>();
//動画読み込み
videoClip = Resources.Load(__path) as VideoClip;
audioSource = gameObject.AddComponent<AudioSource>();
//下の2つは念のための程度の設定です
//AudioのOutputModeを選択
vp.audioOutputMode = VideoAudioOutputMode.AudioSource;
//audioTrack[0]を有効に
videoPlayer.EnableAudioTrack(0,true);
//audioSourceにaudioTrack[0]を設定??
videoPlayer.SetTargetAudioSource(0,audioSource);
//コレが最後に来るのが大事(直感)
videoPlayer.clip = videoClip;
//再生
videoPlayer.Play();
##疑問
動画には音声ファイルがトラックとして含まれていて、そのトラックをaudioSourceに代入し、あとでaudioSourceを同時再生するのかなと思っていました。
事実ソース元(上記リンクと同じ)ではaudioSource.Play()
を動画の再生と同時に行っていたのですが、実際にはその部分がなくても再生可能でした。
可能性として考えているのは、クリップを入れる前にVideoPlayer.SetTargetAudioSOurce(0,audioSource)
などで動画のセッティングをし音声を受け容れる態勢を整えなければいけないということです。この場合audioSourceの何のために感がすごいですが。
##とりあえず
音 出 る
下の二行の順番は大事そうです。
videoPlayer.SetTargetAudioSource(0,audioSource);
videoPlayer.clip = videoClip;
具体的根本的に解決するために精進します。
##HoloLens開発記事一覧
こちらから