Начать песню в определенную секунду - PullRequest
1 голос
/ 14 мая 2019

У меня есть фоновая музыка, это 6-минутный цикл.Песня состоит из 4 частей, и она может начать играть в любую из этих частей.

Как я могу начать воспроизведение песни в определенной ее части в Unity?

Ответы [ 2 ]

2 голосов
/ 14 мая 2019

Попробуйте установить свойство time вашего AudioSource:

//Set the playback time to 3 seconds
audioSource.time = 3;

//Play the audio
audioSource.Play();

Если вы сжимаете аудио, примите во внимание то, что написано в руководстве :

Имейте в виду, что: на сжатой звуковой дорожке положение не требуется отражать фактическое время в треке как набор так называемых пакетов. Длина пакета зависит от настройки сжатия и довольно часто могут составлять 2-3 секунды на пакет

В этом случае вы можете использовать свойство timeSamples вместо:

// Seek 1 sample forward (about 2-3 seconds)
audioSource.timeSamples = 1;

//Play the audio
audioSource.Play();

Возможно, вы также захотите проверить инструмент с открытым исходным кодом Audacity , чтобы разбить ваши файлы на несколько звуков, а затем вы можете просто воспроизвести нужный вам звук, когда вам это нужно.

См. здесь для получения дополнительной информации.

1 голос
/ 14 мая 2019

Я бы посоветовал вам поискать FMOD .

В противном случае вам нужно установить AudioSource.Time (позиция воспроизведения в секундах) с желаемым временем.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...