12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849 |
- using System;
- using UnityEngine;
- namespace RenderHeads.Media.AVProVideo.Demos
- {
- public class ChangeAudioTrack : MonoBehaviour
- {
- private void OnEnable()
- {
- this._isQueued = true;
- }
- private void Update()
- {
- if (this._isQueued && this.IsVideoLoaded())
- {
- ChangeAudioTrack.DoChangeAudioTrack(this._mediaPlayer, this._trackIndex);
- this._isQueued = false;
- }
- }
- private bool IsVideoLoaded()
- {
- return this._mediaPlayer != null && this._mediaPlayer.Info != null && this._mediaPlayer.Control.HasMetaData();
- }
- private static bool DoChangeAudioTrack(MediaPlayer mp, int index)
- {
- bool result = false;
- int audioTrackCount = mp.Info.GetAudioTrackCount();
- if (index >= 0 && index < audioTrackCount)
- {
- mp.Control.SetAudioTrack(index);
- result = true;
- }
- else
- {
- Debug.LogWarning("[AVProVideo] Audio track index is out of range: " + index);
- }
- return result;
- }
- public MediaPlayer _mediaPlayer;
- public int _trackIndex;
- private bool _isQueued;
- }
- }
|