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."); } } }