Documentation

Unity Engine


User Manual

Script Reference

Unity Engine


GetAudioChannelCount(ushort)

Returns the number of channels in the audio track. For example, if the audio track is a stereo track, this function returns 2.
Read time 2 minutesLast updated 11 days ago

Definition

public ushort GetAudioChannelCount(ushort audioTrackIdx)

Parameters

audioTrackIdx

Use this index to specify which audio track in the video to use.

Returns

Type

Description

ushortThe number of channels.

Remarks

Video files can have multiple audio tracks for various reasons. For example, they can use different tracks to separate:
  • different languages.
  • accessibility options.
  • high sampling from low sampling tracks.
  • music from sound effects.
  • sounds with different channel counts.
This function lets you specify an audio track within a video clip to check the channel counts of each one.
The following are further examples of track types and what this function returns for each type:
  • Mono returns 1.
  • Stereo returns 2.
  • Surround sound returns 3 for 2.1, 6 for 5.1, or 8 for 7.1.
This function is useful because you can use the channel count to adapt to different video clips with different audio qualities.

Examples

// This script cycles through a video clip's audio tracks, enables tracks that have 2 channels, and deactivates others. // Assign this script and a <see cref="UnityEngine.Video.VideoPlayer"></see> component to a GameObject in your Scene. // Then assign a video to the VideoPlayer in the Inspector. using UnityEngine;using UnityEngine.Video;public class AudioChannelCountExample : MonoBehaviour{ void Start() { VideoPlayer videoPlayer; VideoClip videoClip; // The amount of channels you want your audio track to have. int preferredAudioChannel = 2; videoPlayer = GetComponent<VideoPlayer>(); if(videoPlayer != null ) { videoClip = videoPlayer.clip; if (videoClip != null) { // Get the number of audio tracks in the VideoClip. int audioTrackCount = videoClip.audioTrackCount; // Loop through each audio track and get the number of channels. for (ushort i = 0; i < audioTrackCount; i++) { ushort channelCount = videoClip.GetAudioChannelCount(i); // Enable the track if it has your preferred audio channel count. if (channelCount == preferredAudioChannel) { videoPlayer.EnableAudioTrack(i, true); Debug.Log("Enabled audio track " + i + " because it has " + channelCount + " channels."); } // Otherwise, deactivate the track. else { videoPlayer.EnableAudioTrack(i, false); Debug.Log("Deactivated audio track " + i + " because it has " + channelCount + " channels."); } } videoPlayer.Play(); } else { Debug.LogError("No VideoClip assigned to VideoPlayer."); } } else { Debug.LogError("No VideoPlayer assigned to GameObject."); } }}