Unity 6.3
0 онлайн 21 гостей 3 в системе
Вход

VideoClip.GetAudioChannelCount

Declaration

public ushort GetAudioChannelCount(ushort audioTrackIdx);

Параметры

Параметр Описание
audioTrackIdx Используйте этот индекс, чтобы указать, какая аудиодорожка в видео будет использоваться.

Возвращаемое значение

Укороченный Количество каналов.

Описание

Возвращает количество каналов в аудиотреке. Например, если аудиотрек является стерео, эта функция возвращает 2.

Видео файлы могут иметь несколько аудио треков по различным причинам. Например, они могут использовать различные треки для разделения:

  • различные языки.
  • варианты доступности.
  • высокая выборка из треков с низкой выборкой.
  • музыка из звуковых эффектов.
  • звуки с разными каналами.

Эта функция позволяет вам указать аудиодорожку в видеоклипе, чтобы проверить количество каналов каждой из них.

Ниже приведены дополнительные примеры типов дорожек и возвращения этой функции для каждого типа:

  • Mono возвращает 1.
  • Стерео возвращает 2.
  • Окружающий звук возвращает 3 для 2.1, 6 для 5.1 или 8 для 7.1.

Эта функция полезна, потому что вы можете использовать количество каналов для адаптации к различным видеоклипам с разным качеством звука.

Дополнительные ресурсы: VideoPlayer.GetAudioChannelCount, VideoPlayer.EnableAudioTrack, VideoClip.GetAudioLanguage, VideoPlayer.GetAudioSampleRate.

// This script cycles through a video clip's audio tracks, enables tracks that have 2 channels, and deactivates others. 
// Assign this script and a VideoPlayer 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."); } } }