53 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			C#
		
	
	
	
			
		
		
	
	
			53 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			C#
		
	
	
	
| using UnityEngine;
 | |
| 
 | |
| //-----------------------------------------------------------------------------
 | |
| // Copyright 2015-2018 RenderHeads Ltd.  All rights reserverd.
 | |
| //-----------------------------------------------------------------------------
 | |
| 
 | |
| namespace RenderHeads.Media.AVProVideo.Demos
 | |
| {
 | |
| 	/// <summary>
 | |
| 	/// Small demonstration showing how to script the changing of audio tracks
 | |
| 	/// </summary>
 | |
| 	public class ChangeAudioTrack : MonoBehaviour
 | |
| 	{
 | |
| 		public MediaPlayer _mediaPlayer;
 | |
| 		public int _trackIndex;
 | |
| 		private bool _isQueued;
 | |
| 
 | |
| 		private void OnEnable()
 | |
| 		{
 | |
| 			_isQueued = true;
 | |
| 		}
 | |
| 
 | |
| 		private void Update()
 | |
| 		{
 | |
| 			if (_isQueued && IsVideoLoaded())
 | |
| 			{
 | |
| 				DoChangeAudioTrack(_mediaPlayer, _trackIndex);
 | |
| 				_isQueued = false;
 | |
| 			}
 | |
| 		}
 | |
| 
 | |
| 		private bool IsVideoLoaded()
 | |
| 		{
 | |
| 			return (_mediaPlayer != null && _mediaPlayer.Info != null && _mediaPlayer.Control.HasMetaData());
 | |
| 		}
 | |
| 
 | |
| 		private static bool DoChangeAudioTrack(MediaPlayer mp, int index)
 | |
| 		{
 | |
| 			bool result = false;
 | |
| 			int numAudioTracks = mp.Info.GetAudioTrackCount();
 | |
| 			if (index >= 0 && index < numAudioTracks)
 | |
| 			{
 | |
| 				mp.Control.SetAudioTrack(index);
 | |
| 				result = true;
 | |
| 			}
 | |
| 			else
 | |
| 			{
 | |
| 				Debug.LogWarning("[AVProVideo] Audio track index is out of range: " + index);
 | |
| 			}
 | |
| 			return result;
 | |
| 		}
 | |
| 	}
 | |
| } |